菜单循环有两种不同的Java程序方法

时间:2017-11-16 14:30:49

标签: java loops menu infinite-loop do-while

我正在开发一个菜单程序,我希望能够在输入之后输入尽可能多的选项而不需要菜单循环,目前它是无限循环,或者程序在一次输入后结束,在第一次之后无法执行不同的选择。另外我想要一个案例,如果我按0,我将退出菜单。

public void showMenu() {

    System.out.println("Welcome!");
    System.out.println("Select an option:\n" +
            "1. Adunare\n" +
            "2. Scadere\n" +
            "3. Inmultire\n" +
            "4. Impartire\n" +
            "5. Comparare numere\n" +
            "6. List To Hundred\n" +
            "7. Nr to list\n" +
            "8. Contains\n" +
            "9. Even numbers\n" +
            "10. List of Strings\n" +
            "11. Second largest number\n" +
            "12. Second lowest number\n" +
            "13. Number \n" +
            "14. Number 2 \n" +
            "15. Number 3\n" +
            "16. String\n" +
            "17. String 2\n" +
            "18. Amount of snow\n" +
            "19. Eligible to vote test\n" +
            "20. Odd or even\n" +
            "21. Dog\n" +
            "22. Cat\n" +
            "23. Elev");

}


public void runProgram() {
    showMenu();
    int numberFromUser = citire.readNumbers();


    do {
        switch (numberFromUser) {
            case 1:
                addition();
                break;
            case 2:
                subtraction();
                break;
            case 3:
                multiply();
                break;
            case 4:
                divide();
                break;
            case 5:
                comparareNumere();
                break;
            case 6:
                listhundred();
                break;
            case 7:
                setnumbertolist();
                break;
            case 8:
                contain();
                break;
            case 9:
                limit();
                break;
            case 10:
                list();
                break;
            case 11:
                secmax();
                break;
            case 12:
                secmin();
                break;
            case 13:
                nr();
                break;
            case 14:
                nr2();
                break;
            case 15:
                nr3();
                break;
            case 16:
                string();
                break;
            case 17:
                string2();
                break;
            case 18:
                weather();
                break;
            case 19:
                eligible();
                break;
            case 20:
                oddoreven();
                break;
            case 21:
                dog();
                break;
            case 22:
                cat();
                break;
            case 23:
                elev();
                break;
            default:
                break;

        }
    } while (numberFromUser != 0);
}

2 个答案:

答案 0 :(得分:0)

添加

  

numberFromUser = citire.readNumbers();

进入循环以获取循环中的数字。

public void runProgram() {
   showMenu();
   int numberFromUser;

   do {
       numberFromUser = citire.readNumbers();
       switch (numberFromUser) {
        case 1:
            addition();
            break;
        case 2:
            subtraction();
            break;
        case 3:
            multiply();
            break;
        case 4:
            divide();
            break;
        case 5:
            comparareNumere();
            break;
        case 6:
            listhundred();
            break;
        case 7:
            setnumbertolist();
            break;
        case 8:
            contain();
            break;
        case 9:
            limit();
            break;
        case 10:
            list();
            break;
        case 11:
            secmax();
            break;
        case 12:
            secmin();
            break;
        case 13:
            nr();
            break;
        case 14:
            nr2();
            break;
        case 15:
            nr3();
            break;
        case 16:
            string();
            break;
        case 17:
            string2();
            break;
        case 18:
            weather();
            break;
        case 19:
            eligible();
            break;
        case 20:
            oddoreven();
            break;
        case 21:
            dog();
            break;
        case 22:
            cat();
            break;
        case 23:
            elev();
            break;
        default:
            break;

       }
   } while (numberFromUser != 0);
}

答案 1 :(得分:0)

尝试将runProgram更改为以下内容:

public void runProgram()
{
int numberFromUser;
showMenu();
while(true)
{
System.out.print("Enter choice: ");
numberFromUser = citire.readNumbers();
switch(NumberFromUser)
{
   // All your case statements
 case 0: System.exit(0);
}
}
}