为了账号安全,请及时绑定邮箱和手机立即绑定

线程“main”中错误输入异常出错

线程“main”中错误输入异常出错

泛舟湖上清波郎朗 2023-08-16 15:53:44
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()。



查看完整回答
反对 回复 2023-08-16
?
神不在的星期二

TA贡献1963条经验 获得超6个赞

通过将其放入,除非您知道有一个可以获取(即为真),否则if您不会调用。nextIntresult



查看完整回答
反对 回复 2023-08-16
  • 2 回答
  • 0 关注
  • 122 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信