Java используя возвращаемое значение из метода для операторов if else - PullRequest
2 голосов
/ 01 апреля 2020

Я создал метод в java, который печатает экран меню, который выглядит следующим образом:

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

Choose an option:

Метод возвращает символ. Как я могу использовать возвращаемое значение метода в main, чтобы сделать операторы if else?

метод printMenu:

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 () в качестве требования для проекта.

Ответы [ 2 ]

3 голосов
/ 01 апреля 2020

Это хороший пример использования do-while l oop:

    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');
0 голосов
/ 01 апреля 2020

Ответил дворником:

menuChar = printMenu(scnr);
...