私は Java に非常に慣れていませんが、VB.NET の経験は「ほとんど」ないため、はるかに寛容です。だから、ばかげた質問かもしれないことを許してください、そして私の貧弱な Java 語彙も許してください。コンソール アプリケーションのスニペットを次に示します。
do
{
out.println("Please enter the name of your space bug and press <enter> to continue");
out.println();
bugOne.setName(keyInput.nextLine());
out.println("You have entered '" + bugOne.getName() + "'.");
out.println("Is this correct? (y/n)");
confirmName = keyInput.findWithinHorizon(".",0).charAt(0);
}
while(confirmName != 'y' && confirmName != 'Y');
最初の繰り返しでは問題なく、入力した名前が表示されます。次に、確認に移動します。ここで「y」または「Y」を入力すると、コードの次の行に問題なくドロップします (ご想像のとおり)。
しかし、それ以外のキーを入力すると、2 回目の繰り返しを行ったときに、キーボード入力のために一時停止しません。Enter キーを押して confirmName リクエストを実行すると、コンソール ウィンドウで生成された行がすぐに読み取られます。
You have entered "".
Is this correct(y/n)?
キーボード入力のために一時停止しないのはなぜですか? (VB コンソール アプリでは、ユーザー入力のためにいつ一時停止するかを指定する必要がありますが、Java で見たところ、できないかできないか... またはできますか?)
また、アクセサ メソッド setName を介して設定された「name」変数が、2 回目の反復で自動的に何も値を割り当てられないのはなぜですか??