java - 在Java中创建菜单时无限循环

标签 java menu do-while

我开始自学 Java,想看看是否可以创建一个基本菜单,但在选择一个选项后我不断陷入无限循环。有什么建议么?

Scanner menu = new Scanner(System.in);
    System.out.println("1. Print Name");
    System.out.println("2. Print Age");
    System.out.println("3. Print City");
    System.out.println("4. Quit");
    int choice = menu.nextInt();
    do {

        if (choice == 1) {
            System.out.println("Saleh Kaddoura");
        }
        else if (choice == 2) {
            System.out.println("20");
        }
        else if (choice == 3) {
            System.out.println("Santa Clara");
        }
        else {
            System.out.println("That is not a Valid Option!");
        }  
    } while(choice != 4);
    menu.close();

当我选择 1 时,它会陷入无限循环,打印我的名字。我在 do while 循环中有条件语句,因此除非选择退出选项,否则菜单不会退出。

最佳答案

更新选择变量的行应该位于循环内:

int choice;
do {
    choice = menu.nextInt();
    // ...
} while(choice != 4);

否则,menu.nextInt()只会运行一次,在第一个数字之后不会再读取任何数字,并且choice的值不会改变,所以choice != 4 将始终为 true(除非您第一次选择 4)。

关于java - 在Java中创建菜单时无限循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23047855/

相关文章:

java - 使用 Hibernate Session 的最简单方法

java - Java 中的跨域 DOM 访问和操作?

java - 主菜单上的多个 Intent

C 中 do while 循环中的计数器

java - 程序加 1、2 或 3,直到达到 21

php - MySQL 和 Do While 循环超时

java - 如何从 Linux 启动 Java GUI 测试

html - 没有javascript的下拉菜单

javascript - 悬停/鼠标悬停时背景图像消失,菜单在 IE 中不起作用

java - Twitter4J.Status 与 android.os.AsyncTask.Status 冲突?