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
提交
取消