首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Java中的用户输入菜单

Java中的用户输入菜单
EN

Stack Overflow用户
提问于 2022-10-23 09:33:02
回答 1查看 40关注 0票数 0

如果我的用户输入了一个错误的输入,程序会告诉他们再试一次,并让输入测试输入是否良好。

我的代码包括:

代码语言:javascript
复制
public void displayMenu() {
        Scanner scanner = new Scanner(System.in);
        String choice = "0";
        while (!(choice.equals("4"))) {
            System.out.println("1. Display Audio Files");
            System.out.println("2. Display Compact Discs");
            System.out.println("3. Display Vinyl Records");
            System.out.println("4. Exit");
            if (scanner.hasNextInt()) {
                 choice = scanner.nextLine();
                 System.out.println(choice);
                 if (choice.equals("1")) {
                        //Display the audio Files from musicLibrary library
                        //library.displayChoice("af");
                 }
                 if (choice.equals("2")) {
                 //Display the compact Discs from musicLibrary library
                  //library.displayChoice("cd");
                 }
                 if (choice.equals("3")) {
                        //Display the Vinyl Records from musicLibrary library
                  library.displayChoice("vr");
                 }
            }
            else {
             System.out.println("You gave a bad input! Try again!!!");
                choice = scanner.nextLine();
                    //System.out.println("1. Display Audio Files");
                    //System.out.println("2. Display Compact Discs");
                    //System.out.println("3. Display Vinyl Records");
                    //System.out.println("4. Exit");
                    //choice = scanner.nextLine();
             }
                
            }
        
      
        System.out.println("Bye Bye :]");
        scanner.close();
    }

现在,它只会在while循环下重复系统输出,我不知道为什么。我正在打印用户提供的输入,以帮助调试,但我仍然不知道出了什么问题。

对我怎么处理这件事有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2022-10-23 09:56:22

代码语言:javascript
复制
import java.util.Scanner;

public class Main {

    public static void printOptions() {
        System.out.println("1. Display Audio Files");
        System.out.println("2. Display Compact Discs");
        System.out.println("3. Display Vinyl Records");
        System.out.println("4. Exit");
    }

    public static void close(Scanner scanner) {
        System.out.println("Bye Bye :]");
        scanner.close();
    }

    public static void displayMenu() {
        Scanner scanner = new Scanner(System.in);
        String choice;
        printOptions();
        while (true) {
            if (scanner.hasNextInt()) {
                choice = scanner.nextLine();
                switch (choice) {
                    case "1" -> System.out.println("1");
                    case "2" -> System.out.println("2");
                    case "3" -> System.out.println("3");
                    case "4" -> {
                        close(scanner);
                        return;
                    }
                    default -> {
                        System.out.println("You gave a bad input! Try again!!!");
                    }
                }
            } else {
                close(scanner);
                return;
            }
        }
    }

    public static void main(String[] args) {
        displayMenu();
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74170037

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档