質問: sc.next(); // 解答を入力 if(yourAns.equals(answer)) { // 判定 System.out.println("正解です!"); break; } else { System.out.println("不正解です。"); } } System.out.println("もう一度実行しますか? 1.はい 2.いいえ"); ★ if(!sc.next().equals("1")) { break; } } System.out.println("終了します"); } }
回答: ``` Scanner sc = new Scanner(System.in); ``` まずこれは、Scannerの読み込み元を指定します。System.inは標準入力といい、コンソールなどがその対象となります。 その後、next()メソッドなどで読み込もうとしますが、何も入力されていない場合、読み込むことができません。この時、キーボードから入力されるのを待つ「入力待ち」状態になり、プログラムが一時停止状態になるのです。 Enterが押された際に、次の要素の読み込みが始まり、プログラムが再開します。 どこかから複数行を一気にコンソールにコピペした場合は、いくつか読み込める要素が残ることになるので、一時停止状態にならずプログラムが動きます。