【问题标题】:Menu loop in 2 different methods Java program2种不同方法Java程序中的菜单循环
【发布时间】:2017-11-16 14:30:49
【问题描述】:

我正在开发一个菜单程序,我希望能够在输入后不循环菜单的情况下输入任意数量的选项,目前它要么是无限循环,要么程序在一次输入后结束,即无法在第一次之后执行不同的选择。我也想有一个情况,如果我按 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);
}

【问题讨论】:

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


    【解决方案1】:

    添加

    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);
    }
    

    【讨论】:

      【解决方案2】:

      尝试将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);
      }
      }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-12-04
        • 1970-01-01
        • 2014-06-24
        • 2016-05-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多