BlueJ IDEでこのプログラムをJavaで作成しました。これは、小数点のベースで数値を取って、それをベース9までのユーザー選択のベースに変換することを意味します。これは、2つの数値の間のモジュラスを取り、それを文字列に挿入することによって行われます。コードは入力ステージまで動作し、その後出力はありません。私の数学は正しいと確信していますが、構文に問題があるかもしれません。次のように他のすべての機能が動作しているにもかかわらず、コード内にWhileループの出力がないのはなぜですか?
私のコードは次のとおりです。
import java.util.*;
public class Octal
{
public static void main(String[] args)
{
Scanner in = new Scanner(System.in);
int danum = 0;
int base = 0;
System.out.println("Please enter the base you want the number in (till decimal). Enter as a whole number");
base=in.nextInt(); //This is the base the user wants the number converted in//
System.out.println("Enter the number you want converted (enter in decimal)");
danum=in.nextInt(); //This is the number the user wants converted//
while (danum/base >= base-1 && base < danum) {
int rem = danum/base; //The number by the base//
int modu = danum % base;//the modulus//
String summat = Integer.toString(modu);//this is to convert the integer to the string//
String strConverted = new String();//Making a new string??//
StringBuffer buff = new StringBuffer(strConverted);//StringBuffer command//
buff.insert(0, summat); //inserting the modulus into the first position (0 index)//
danum = rem;
if (rem <= base-1 || base>danum) {//does the || work guys?//
System.out.println(rem + strConverted);
}
else {
System.out.println(strConverted);
}
}
}
}
私は、Javaに非常に新しいですので、私は構文を十分に認識していないです。私はあなたの時間を無駄にしないように、研究に最善を尽くしました。プログラマーとして自分のコードとスキルを向上させる方法を教えてください。ありがとう。
あなた自身を見つけるためにデバッガを使用してください。 –
...デバッガを使用できない場合は、いくつかのsysout文を追加して、たとえば次のように確認してください。あなたの数学(whileループ条件など)... – home
コードが構築されて実行されても、構文に問題はありません。 どのような例で試しましたか? whileループの前に 'base'と' danum'を出力して、正しい値を得ているかどうかを確認してください。 – Shark