int number = scanner.nextInt ();如果我放入括號if并寫出錯誤的輸入,則會出現問題,但效果很好。但如果我不在 之外寫它if,當我輸入錯誤的輸入時,它會給出以下錯誤Exception in thread "main" java.util.InputMismatchExceptionat java.base/java.util.Scanner.throwFor(Scanner.java:939)at java.base/java.util.Scanner.next(Scanner.java:1594)at java.base/java.util.Scanner.nextInt(Scanner.java:2258)at java.base/java.util.Scanner.nextInt(Scanner.java:2212)at UserInput.main(UserInput.java:15)代碼:import java.util.Scanner;public class UserInput {public static void main(String[] args) { int Sum=0, counter = 0,no=1; Scanner scanner; scanner = new Scanner(System.in); do { System.out.println("Enter number #" + no + " = "); boolean result = scanner.hasNextInt(); int number = scanner.nextInt(); if(result == true) { counter = counter + 1; Sum = Sum + number; no = no+1; } else { System.out.println("Invalid Input"); } scanner.nextLine(); }while(counter<10); System.out.println("Sum = " + Sum ); scanner.close(); }}
2 回答

Smart貓小萌
TA貢獻1911條經驗 獲得超7個贊
如果 hasNextInt() 返回 false,則意味著掃描器的下一個標記(標記=“掃描”的對象的片段)不是整數。如果您現在調用方法 nextInt(),盡管下一個標記實際上不是 Integer,那么您將得到 InputMismatchException。正如 Scott 所說,通過將調用放在 if 語句中,您可以防止這種情況發生,因為您可以確保下一個標記是一個整數,并且您實際上可以調用 nextInt()。
添加回答
舉報
0/150
提交
取消