0

重複の可能性:
java、プログラムが scan.nextLine() で停止しない

    System.out.println("Welcome to the Tuition Calculator Program.");
    System.out.println("How many total credits are you taking?");
    credits = scan.nextInt();

    System.out.println("Are you a Washington resident? y/n");
    resident = scan.nextLine();

    System.out.println("Are you a graduate student? y/n");
    grad = scan.nextLine();

私はJavaが初めてで、プログラミングは比較的新しいです。jGRASP で動作する PC 上。上記のコードでは、ユーザーが単位数 (int 応答)、居住地 (文字列)、卒業ステータス (文字列) を入力する必要があるだけです。

ユーザーはクレジットを入力できますが、その後、常駐の質問と卒業生の質問が一緒に印刷されます。停止せず、ユーザーが居住者の質問への回答を入力できるようにします。(卒業生の質問への回答を入力することができます。)

フォーラムの他の関連する質問は役に立ちませんでした。余分な改行を飲み込むために余分な行を追加しようとしましたが、それはできませんでした。おそらく、間違った種類の行を追加したのでしょう。このスレッドは役に立ちましたが、有効な解決策を提供しませんでした。

4

1 に答える 1

1

なぜそれが起こっているのですか?
印刷しようとするとresident、文字が印刷されることがわかりますnewline。実際にここで起こっていることはこれです。の入力後に押したエンターはcredits、文字列 ans として取得され、resident変数にコピーされます。したがって、ここで必要なのは、その改行文字を避けることです。
ソリューションはusingを
読み取り、それを整数 using に解析します。 creditsnextLine()Integer.parseInt()

 System.out.println("Welcome to the Tuition Calculator Program.");  
    System.out.println("How many total credits are you taking?");  
    credits = Integer.parseInt(scan.nextLine());  
    System.out.println("Are you a Washington resident? y/n");
    resident = scan.nextLine();
    System.out.println("Are you a graduate student? y/n");
    grad = scan.nextLine();
于 2012-07-12T04:21:14.820 に答える