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

时间:2014-04-13 20:10:35

标签: 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循环中有条件语句,因此除非选择退出选项,否则菜单不会退出。

1 个答案:

答案 0 :(得分:1)

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

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

否则,menu.nextInt()只会运行一次,在第一个之后不会再读取数字且choice的值不会发生变化,因此choice != 4将始终为true(除非你第一次选择4)。