私のプログラムがユーザー入力のプロンプトをスキップしている問題があります。関連するコードは以下の通りです:プログラムがユーザー入力を要求するのを待っていません
System.out.format("Purchase price is $" + "%.2f%n", sum);
System.out.println("Proceed to payment? (y/n) ");
String proceed = keyboard.nextLine();
while(!proceed.equals("n") && (!proceed.equals("y"))) {
System.out.println("Invalid response. Try again.");
System.out.println("Proceed to payment? (y/n) ");
proceed = keyboard.nextLine();
if (proceed.equals("n")) {
System.out.println("Come back next time, " + name + ".");
System.exit(0);
}
else if (proceed.equals("y")) {`
出力がで一時停止する必要があります
購入価格$ x.00
が支払いに進んでいるのですか? (Y/N)
しかし、その代わりに出力:
購入価格は
が支払いに進ん$ x.00のですか? (y/n)
無効な応答です。再試行する。
お支払いに進む? (y/n)
誰にも最初のスキャナのプロンプトを無視する理由を教えていただけますか?
EDIT:コードは独立して動作しますが、問題はプログラム内のどこかにあります。私がそれを理解すると、私は報告するでしょう。
何らかの理由で、keyboard.nextLine()の代わりにproceed = keyboard.next()を使用したときに問題が消えた – jdosha