我想從用戶那裏得到一個整數輸入。我正在使用try-catch異常,因此如果輸入不是int
,它會要求用戶輸入其他輸入。我寫了下面的代碼:如何在處理異常時處理輸入?
while (flag==true) {
try {
System.out.println("Enter the encryption key!");
k = input.nextInt();
flag = false;
}
catch (InputMismatchException ex) {
System.out.println("Please enter integer value!(");
}
}
但是,當發生異常循環不斷打印
"Enter the encryption key!"
"Please enter integer value!"
無限,因爲掃描儀輸入不等待採取另一種輸入。
我該如何解決這個問題?
你想接受異常後的整數值? –
我懷疑你目前沒有收到「int」。我還假設'input'是一個'java.util.Scanner'。如果是這樣,在接收調用'input.nextInt()'之前調用'input.hasNextInt()'來避免異常。 –
'while(flag == true)'應該是'while(flag)'。沒有必要像這樣檢查布爾值。 – Ascalonian