try/catchの後にエラーメッセージがスローされたため、このtry/catchをdo/whileループの周りにラップしています。私はdo/whileを試してみましたが、whileループをコード内の別の場所に配置しようとしましたが、何も動作しませんでした。例外がスローされ、無限ループに入るまで、プログラムは正常に動作します。エラーメッセージが表示されたら、上にループバックします。Javaでループが無期限にループしないようにするにはどうすればよいですか?
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
Integer userInput;
do {
try{
System.out.print("Enter a number? \n");
userInput = input.nextInt();
if (userInput == 1)
Animal1.displayMessage();//Display the total
if(userInput == 2)
Animal2.displayMessage();//Display the total
}
catch (Exception e) {
System.out.println(" That's not right ");
break;
}
} while (true);
}
}
これは、エラーメッセージを表示した後に何をするかです。
Enter a number?
That's not right
Enter a number?
That's not right
Enter a number?
That's not right
Enter a number?
That's not right
Enter a number?
That's not right
Enter a number?
That's not right
Enter a number?
That's not right
Enter a number?
That's not right
Enter a number?
Enter a number?
私がそれを止めなければ、それはただ続けるだけです。
私は多くの不確定ループを持っています。私は本当にそれらをより確実にするために働くべきです。 – markspace
これは私の説明どおり正しく動作します。 –
私はちょうどあなたのコードをテストしました。私は数字を入力すると無限にループしますが、他の入力があればループを終了します。 –