当前位置: 首页 > 知识库问答 >
问题:

Java输入错误匹配异常

盛超
2023-03-14

我有这个代码,我想捕捉字母异常,但它一直有以下错误:

Exception in thread "main" java.util.InputMismatchException
    at java.util.Scanner.throwFor(Scanner.java:840)
    at java.util.Scanner.next(Scanner.java:1461)
    at java.util.Scanner.nextInt(Scanner.java:2091)
    at java.util.Scanner.nextInt(Scanner.java:2050)
    at exercise_one.Exercise.main(Exercise.java:17)

这是我的代码:

 System.out.print("Enter the number of students: ");

 students = input.nextInt(); 

 while (students <= 0) {

     try {

        System.out.print("Enter the number of students: ");

        students = input.nextInt();

     }

     catch (InputMismatchException e) {

        System.out.print("Enter the number of students");

     }
 }    

共有3个答案

公良征
2023-03-14

从扫描仪读取数据并将其分配给Int类型。由于您提供的是字符串,因此将引发异常。要处理这种情况,您必须只在Try-Catch块中编写代码片段。

鲁洋
2023-03-14

医生给的

扫描仪。nextInt将输入的下一个标记扫描为int。如果下一个标记与整数正则表达式不匹配,或超出范围

所以你似乎没有输入任何整数作为输入。

你可以用

     while (students <= 0) {

         try {
            System.out.print("Enter the number of students: ");

            students = input1.nextInt();

         }

         catch (InputMismatchException e) {
             input1.nextLine();
         }
     } 
邴景山
2023-03-14

您可以使用do while循环来消除第一个输入。nextInt()

int students = 0;
do {
    try {
        // Get input 
        System.out.print("Enter the number of students: ");
        students = input.nextInt();
    } catch (InputMismatchException e) {
        System.out.print("Invalid number of students. ");
    }
    input.nextLine(); // clears the buffer
} while (students <= 0);

// Do something with guaranteed valid value 

因此,所有的输入不匹配异常都可以在一个地方处理。

 类似资料:
  • (更新的代码)无论出于什么原因,InputMismatchException的catch块无法正常工作。当代码抛出此错误时,catch块不会捕获它。有人知道为什么会这样吗?

  • 问题内容: 我是Java的新手学生,正在尝试完成一个使用扫描仪输入5个学生姓名的程序,然后在其中进行循环以为每个学生获得3个成绩。我一直卡在输入错误匹配错误,我不知道为什么。我试图正确匹配将哪些类型的输入输入到变量中。任何帮助将不胜感激! 这就是我所拥有的: 这就是我得到的: 问题答案: 您的问题在第20行。 这意味着在输入中,它期望一个int值,但它会发现另一件事,例如double,char数组

  • 编辑问题以包括所需的行为、特定问题或错误以及重现问题所需的最短代码。这将帮助其他人回答问题。 (更新的代码)无论出于什么原因,InputMismatchException的catch块无法正常工作。当代码抛出此错误时,catch块不会捕获它。有人知道为什么会这样吗?

  • 有点麻烦。 基本上,我得到了输入行 5,4,5 8,7=6,3 3,2 9,6 4,3=7,6=9,8=5,5 7,8 6,5 6,4

  • 我正在为一堂课做家庭作业。你必须计算这个月的工资。每次我尝试运行它时,它总是这样说:我如何修复它?线程“main”java.util.InputMismatchException中的异常 java.util.Scanner.throwFor(Scanner.java:864) at java.util.Scanner.next(扫描仪.java:1485) java.util.Scanner.ne

  • 所以我在学习java,两天来我一直在寻找这个问题的解决方案。我尝试了所有的十进制分隔符,并试图设置语言环境,结果发现它不起作用。 代码: 输出和错误