有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

JAVAutil。扫描程序Java在线程“main”Java中获取“异常”。util。扫描仪的NoTouchElementException'错误

这是我的代码:我正在尝试创建一个函数,允许用户在完成程序后返回菜单。然而,每当我试图运行代码时,总是会出现“NoTouchElement”错误


import java.io.FileNotFoundException;
import java.util.Scanner;

public class homePage 
{
    public static void main(String[] args) throws FileNotFoundException
    {   
        Scanner sc = new Scanner (System.in);
        Menu.menu();
    
        System.out.println("Would you like to  1:Exit the program or 2: complete another action ");
        int newChoice = sc.nextInt();
    
        System.out.println(newChoice);
    
        switch(newChoice)
        {
        case 1:
            Exit exitScreen = new Exit();
            exitScreen.exit();
            break;
        case 2:
            Menu.menu();
        default:
            System.out.println(newChoice + "invalid input");
            System.out.println("\n");
            main(args);
        }
    }
}

输出:

Would you like to  1:Exit the program or 2: complete another action 
Exception in thread "main" java.util.NoSuchElementException
    at java.base/java.util.Scanner.throwFor(Scanner.java:937)
    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 homePage.main(homePage.java:12)

这里是一个最小的、可重复的示例 这是指菜单类。当用户选择其中一个选项时,它会打印出单词(显示/创建/删除),然后它会询问用户是否完成了打印。如果完成,将显示退出消息,如果未完成,则应再次显示菜单

import java.io.FileNotFoundException;
import java.util.Scanner;

public class Menu 
{
    public static void menu() throws FileNotFoundException
    {
        Scanner in  = new Scanner(System.in);
        
        System.out.println("Menu \n1 - Display \n2 - Create \n3 - Delete");
        int choice = in.nextInt();
        System.out.println(choice);
        
        switch (choice)
        {
            case 1:
                System.out.println("Display");
            case 2:
                System.out.println("Create");
            case 3:
                System.out.println("delete");
                break;
            default:
                System.out.println("Incorrect Value. Enter a value between 1 and 3");
                break;
        }
        
        in.close();
    }

}


共 (0) 个答案