“线程中的异常”;“主要”;java.util.NoSuchElementException(如何修复错误)

“线程中的异常”;“主要”;java.util.NoSuchElementException(如何修复错误),java,exception,java.util.scanner,Java,Exception,Java.util.scanner,这个错误使我心烦意乱 Exception in thread "main" java.util.NoSuchElementException at java.util.Scanner.throwFor(Scanner.java:862) at java.util.Scanner.next(Scanner.java:1485) at java.util.Scanner.nextInt(Scanner.java:2117) at java.util.Scanner.n

这个错误使我心烦意乱

Exception in thread "main" java.util.NoSuchElementException
    at java.util.Scanner.throwFor(Scanner.java:862)
    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:266)
    at Ideone.test(Main.java:72)
    at Ideone.test(Main.java:32)
    at Ideone.main(Main.java:23)
我的代码:

import java.util.Scanner;
import java.lang.Math;

class Main {
  public static void main(String[] args){


      Scanner scan = new Scanner(System.in);

      System.out.println("Welcome. What is your name?");
      String x;
      x = scan.nextLine();

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

//Phase 1
      System.out.println("PHASE 1");

      System.out.println("Enter a number:");
      int y = scan.nextInt();
      if (y == 3){
        System.out.println("Correct!");
        System.out.println(" ");
//Phase 2
        System.out.println("PHASE 2");
        System.out.println("Enter a number:");
      }
      int z = scan.nextInt();
      if (z == 1 || (z >= 33 && z <= 100)){
        System.out.println("Correct!");
        System.out.println(" ");
//Phase 3
        System.out.println("PHASE 3");
        System.out.println("Enter a number:");}
      int c = scan.nextInt();
      if (c % 3 == 0 || c % 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!");}


    }
}
import java.util.Scanner;
导入java.lang.Math;
班长{
公共静态void main(字符串[]args){
扫描仪扫描=新扫描仪(System.in);
System.out.println(“欢迎。你叫什么名字?”);
字符串x;
x=scan.nextLine();
System.out.println(“Hello”+x+”。请尽力破解代码!”;
System.out.println(“”);
//第一阶段
系统输出打印项次(“第1阶段”);
System.out.println(“输入一个数字:”);
int y=scan.nextInt();
如果(y==3){
System.out.println(“正确!”);
System.out.println(“”);
//第二阶段
系统输出打印项次(“第2阶段”);
System.out.println(“输入一个数字:”);
}
int z=scan.nextInt();

如果(z==1 | |(z>=33&&z你的错误纯粹是逻辑错误。你有}的地方,它们不应该在那里。 您也没有使用在nextInt()上按enter键生成的/n“新行”

为了避免混淆您自己,请在嵌套的if上使用开始和结束注释 在创建if和使用空格分隔所有内容时,创建框架是一个很好的做法

if( conditon) 
{
      if_statement(s);
}
else
{
      else_statement(s);
}
这是您更正的代码

import java.util.Scanner;
import java.lang.Math;

class BrockTaylor
{
    public static void main(String[] args)
    {
        Scanner scan = new Scanner(System.in);
        System.out.println("Welcome. What is your name?");
        String x;
        x = scan.nextLine();
        System.out.println("Hello " + x + ". Try your best to crack the code!");
        System.out.println(" ");
        System.out.println("PHASE 1");
        System.out.println("Enter a number:");
        int y = scan.nextInt();
        // consume the /n
        scan.nextLine();
        //Phase 1
        if (y == 3)
        {
            System.out.println("Correct!");
            System.out.println(" ");
            System.out.println("PHASE 2");
            System.out.println("Enter a number:");
            int z = scan.nextInt();
            // consume the /n
            scan.nextLine();
            //Phase 2
            if (z == 1 || z >= 33 && z <= 100)
            {
                System.out.println("Correct!");
                System.out.println(" ");
                System.out.println("PHASE 3");
                System.out.println("Enter a number:");
                int c = scan.nextInt();
                // consume the /n
                scan.nextLine();
                //Phase 3
                if (c % 3 == 0 || c % 7 == 0)
                {
                    System.out.println("Correct!");
                    System.out.println("You have cracked the code!");
                }
                else // phase 3
                {
                    System.out.println("Sorry, that was incorrect!");
                    System.out.println("Better luck next time!");
                }
            }
            else // phase 2
            {
                System.out.println("Sorry, that was incorrect!");
                System.out.println("Better luck next time!");
            }
        }
        else// phase 1
        {
        System.out.println("Sorry, that was incorrect!");
        System.out.println("Better luck next time!");
        }
    }
}
import java.util.Scanner;
导入java.lang.Math;
布罗克泰勒类
{
公共静态void main(字符串[]args)
{
扫描仪扫描=新扫描仪(System.in);
System.out.println(“欢迎。你叫什么名字?”);
字符串x;
x=scan.nextLine();
System.out.println(“Hello”+x+”。请尽力破解代码!”;
System.out.println(“”);
系统输出打印项次(“第1阶段”);
System.out.println(“输入一个数字:”);
int y=scan.nextInt();
//使用/n
scan.nextLine();
//第一阶段
如果(y==3)
{
System.out.println(“正确!”);
System.out.println(“”);
系统输出打印项次(“第2阶段”);
System.out.println(“输入一个数字:”);
int z=scan.nextInt();
//使用/n
scan.nextLine();
//第二阶段
如果(z==1 | | z>=33&&z“如何找出扫描仪和输入的问题?”请在调用
nextInt
之前调用
hasNextInt