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

运行时错误--线程"main"中的异常java.util.InputMismatchException

禄俊逸
2023-03-14

我很难理解这个代码有什么问题。Dr.Java一切都很好,但是在另一个名为edhesive的代码运行平台上(我就是在这个平台上被分配这个项目的),它给我一个错误。我已经检查了所有我认为出错的地方,但仍然不知道哪里出了问题。

import java.util.Scanner;

public class Main
{
     public static void main(String[] args)
     {
          Scanner scan = new Scanner(System.in);
          System.out.println("Welcome. What is your name?");
          String name = scan.next();

          System.out.println("Hello " + name + ". Try your best to crack the code!");

          System.out.println("PHASE 1");
          System.out.println("Enter a number:");
          int phaseOneNum = scan.nextInt();

          if (phaseOneNum == 3)
          {
               System.out.println("Correct!");

               System.out.println("PHASE 2");
               System.out.println("Enter a number:");
               int phaseTwoNum = scan.nextInt();

               if (phaseTwoNum == 1 || (phaseTwoNum > 33 && phaseTwoNum<= 100))
               {
                    System.out.println("Correct!");

                    System.out.println("PHASE 3");
                    System.out.println("Enter a number:");
                    int phaseThreeNum = scan.nextInt();

                    if (phaseThreeNum > 0 && ((phaseThreeNum % 3 == 0) || (phaseThreeNum % 7 == 0)))
                    {
                      System.out.println("Correct!");
                      System.out.println("You have cracked the code!");
                    }

                    else
                    {
                         System.out.println("Sorry, that was incorrect!");
                         System.out.println("Better luck next time!");
                    }
               }

               else
               {
                    System.out.println("Sorry, that was incorrect!");
                    System.out.println("Better luck next time!");
               }
          }

          else
          {
               System.out.println("Sorry, that was incorrect!");
               System.out.println("Better luck next time!");
          }
     }
}

在edhesive上运行后,我得到了这个错误

Exception in thread "main" java.util.InputMismatchException
    at java.util.Scanner.throwFor(Scanner.java:864)
    at java.util.Scanner.next(Scanner.java:1485)
    at java.util.Scanner.nextInt(Scanner.java:2117)
    at java.util.Scanner.nextInt(Scanner.java:2076)
    at Main.main(Main.java:184)
    at Ideone.test(Main.java:111)
    at Ideone.test(Main.java:31)
    at Ideone.main(Main.java:23)

有人能帮帮我吗?

共有1个答案

蓬运诚
2023-03-14

运行时错误-线程“main”java.util.InputMismatchException中出现异常

scan.nextInt();只接受整数,你可以传递字符串。所以,它给你java.util.InputMismatchException

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        System.out.println("Welcome. What is your name?");
        String name = scan.next();

        System.out.println("Hello " + name + ". Try your best to crack the code!");

        System.out.println("PHASE 1");
        System.out.println("Enter a number:");
        int phaseOneNum = 0;
        do {
            while (!scan.hasNextInt()) {
                System.out.println("That's not a number!");
                scan.next(); // this is important!
            }
            phaseOneNum = scan.nextInt();
        } while (phaseOneNum <= 0);

        if (phaseOneNum == 3) {
            System.out.println("Correct!");

            System.out.println("PHASE 2");
            System.out.println("Enter a number:");
            int phaseTwoNum;
            do {
                while (!scan.hasNextInt()) {
                    System.out.println("That's not a number!");
                    scan.next(); // this is important!
                }
                phaseTwoNum = scan.nextInt();
            } while (phaseTwoNum <= 0);

            if (phaseTwoNum == 1 || (phaseTwoNum > 33 && phaseTwoNum <= 100)) {
                System.out.println("Correct!");

                System.out.println("PHASE 3");
                System.out.println("Enter a number:");
                int phaseThreeNum;
        do {
            while (!scan.hasNextInt()) {
                System.out.println("That's not a number!");
                scan.next(); // this is important!
            }
            phaseThreeNum= scan.nextInt();
        } while (phaseThreeNum<= 0);

                if (phaseThreeNum > 0 && ((phaseThreeNum % 3 == 0) || (phaseThreeNum % 7 == 0))) {
                    System.out.println("Correct!");
                    System.out.println("You have cracked the code!");
                } else {
                    System.out.println("Sorry, that was incorrect!");
                    System.out.println("Better luck next time!");
                }
            } else {
                System.out.println("Sorry, that was incorrect!");
                System.out.println("Better luck next time!");
            }
        } else {
            System.out.println("Sorry, that was incorrect!");
            System.out.println("Better luck next time!");
        }
    }
}
 类似资料:
  • 我在尝试运行程序时出现以下错误。这实际上是Hackerrank“第六天让我们回顾”挑战的提交。 线程“main”java中出现异常。util。java的NoTouchElementException。util。扫描仪。throwFor(Scanner.java:862)访问java。util。扫描仪。下一步(Scanner.java:1371)是解决方案。main(Solution.java:10

  • 问题内容: 这是代码: 错误: 跑: 请帮助我解决此错误。我正在使用Windows Vista OS。 谁能建议我如何以.3gp格式存储文件?请帮助 问题答案: 方法内部的第202行的某些对象引用是在代码尝试使用点运算符访问/调用它时进行的。 例如 解决方案实际上很简单。只需实例化它即可确保它不为空: …或在访问/调用之前简单地执行nullcheck:

  • 我已经编写了一段代码,其中我制作了一个接口和一个实现该接口的类。现在,当我运行代码时,我给了我自己2个选项,即1输入字符串,2退出。现在,当我运行代码时,如果我选择1,它会让我放入字符串,但在此之后,当我按0时,它会给我错误:Exception in thread“main”java.lang。有人能帮我找出我在这里遗漏了什么吗?下面是代码: StackTrace: 线程“main”java.la

  • 从终端执行jar时,我得到以下信息: 我搜索了他的错误,发现了一些相同的执行输出错误,但没有解决我的情况。 下面详细介绍了文件的位置、清单内容、所采取的终端步骤以及所涉及的两个类文件的代码内容。 文件位置 > SWT库 舱单 班级 普通人。jar(参见下面的创建): Manifest.txt内容: 终端动作 > 目录更改 . jar创建 舱单检查 普通人。jar执行 密码 用户nterface.c

  • 我试图在java应用程序中调用java存储过程。我正在使用ORACLE数据库和JDeveloper。 我得到错误"异常线程"主"java.lang.NullPointerException.我不知道我做错了什么。 我有一个表“Beer”,我想用一个存储过程来选择所有数据,我从Java应用程序中调用这个存储过程。 我有一个java.class文件Store_A. java,我已经加载到ORACLE数

  • 问题内容: 我正在尝试执行以下代码: 但这给了我这个错误: 我已将SLF4J添加到引用的库中,但不知道为什么这不起作用。 在WIN 7上运行,在Eclipse和NetBeans中尝试过 任何想法? 问题答案: 下载SLF4J并将slf4j-api-1.7.2.jar文件放到您的类路径中。