スキャナーが無期限のwhileループ中にユーザー入力をブロックしないという問題が発生しています。使ってみましたが、うまくいきませhasNextLine()
んでした。を呼び出してループを無限に実行するだけdisplayMenu()
です。
do {
displayMenu();
int response;
while (iStream.hasNextLine()) {
response = Integer.parseInt(iStream.nextLine());
switch (response) {
case 1:
decodeMessage(getPhrase());
break;
case 2:
encodeMessage(getPhrase());
break;
case 3:
displayAlphabet();
break;
case 4:
done = true;
System.out.println("Goodbye.");
break;
default:
done = false;
}
}
}
while (!done);
私も使用しないように試みましたが、最初は完全に実行されるためhasNextLine()
、最終的にはaNoSuchElementException
になりますが、2回目の反復では、ユーザー入力をブロックしません。
do {
displayMenu();
int response = Integer.parseInt(iStream.nextLine());
switch (response) {
case 1:
decodeMessage(getPhrase());
break;
case 2:
encodeMessage(getPhrase());
break;
case 3:
displayAlphabet();
break;
case 4:
done = true;
System.out.println("Goodbye.");
break;
default:
done = false;
}
}
while (!done);
何かご意見は?