我試圖用此代碼來完成的所有操作都是檢查用戶的輸入是否爲整數,然後如果它不是正確的數據類型,則再次輸入3次機會。然後最後拋出一個例外,如果他們達到「maxTries」標記。Java嘗試捕獲問題
任何幫助將不勝感激。乾杯。
boolean correctInput = false;
int returnedInt = 0;
int count = 0;
int maxTries = 3;
Scanner kybd = new Scanner(System.in);
while(!correctInput)
{
try
{
System.out.println("\nInput your int, you have had:" + count + " tries");
returnedInt = kybd.nextInt();
correctInput = true;
}
catch(InputMismatchException e)
{
System.out.println("That is not an integer, please try again..");
if (++count == maxTries) throw e;
}
}
return returnedInt;
你對這段代碼有什麼問題?錯誤訊息?它不是做它應該做的事情,如果是這樣,它做什麼呢? – JJJ 2014-10-20 17:26:08
我想你沒有設置correctInput爲false,所以它跳出循環 – 2014-10-20 17:27:13
字符串 這不是整數的,請稍後再試.. 輸入您的INT,您有:1次嘗試 異常線程「main 「java.util.InputMismatchException 這不是一個整數,請重試.. 輸入您的INT,你所擁有的:2次嘗試 這不是一個整數,請重試.. \t在java.util.Scanner中.throwFor(Scanner.java:909) \t at java.util.Scanner.next(Scanner.java:1530) \t at java.util.Scanner.nextInt(Scanner.java:2160) \t在java.util.Scanner.nextInt(Scanner.java:2119) \t在Main.inputInt(Main.java:25) \t在Main.main(Main.java:10) Java結果:1個 BUILD SUCCESSFUL(總時間:5秒) – user258873 2014-10-20 17:27:38