首页 > 解决方案 > Java使用if else语句的方法返回值

问题描述

我在 java 中创建了一个打印菜单屏幕的方法,如下所示:

MENU
c - Number of whitespace characters
f - Find text
r - Replace all !'s
q - Quit

Choose an option:

该方法返回一个字符。如何使用 main 中方法的返回值来制作 if else 语句?

打印菜单方法:

public static char printMenu(Scanner scnr) {
      char menuOp;

      //display the menu
      System.out.println("\nMENU");
      System.out.println( "c - Number of whitespace characters");
      System.out.println("f - Find text");
      System.out.println("r - Replace all !\'s");
      System.out.println("q - Quit\n");

      menuOp = ' ';

      //loop until the user has entered a c, f, r or q
      while (menuOp != 'c' && menuOp != 'f' &&
                menuOp != 'r' &&  
                menuOp != 'q') {
         System.out.println( "Choose an option:");
         menuOp = scnr.nextLine().charAt(0);
      }

      //return the letter that the user entered
      return menuOp;
   }  //end of the printMenu method

我希望能够做的主要是:

while (return value from printMenu method != 'q'){

      printMenu(scnr);
      if (return value from printMenu method == 'c'){ //do this                    
      }
      else if (return value from printMenu method == 'f'){ //do this
      }
      else if (return value from printMenu method == 'r'){ //do this
      }
   }
}

我还是新手,非常感谢帮助、耐心和善意。谢谢

编辑- 我必须使用 printMenu() 的返回值作为项目的要求。

标签: javaif-statementmethodsreturn

解决方案


这似乎是使用do-while 循环的一个很好的例子:

    Scanner scanner = new Scanner(System.in);
    char c;
    do
    {
        c = printMenu(scanner);
        switch (c)
        {
            case 'c':
                //do something
                break;
            case 'f':
                //do something
                break;
            case 'r':
                //do something
                break;

        }
    } while(c != 'q');

推荐阅读