2017-01-27 9 views
0

Я пытаюсь настроить булевский флаг, чтобы пользователь должен ввести «M» (Отметить ответы ученика), прежде чем они смогут выбрать «S» и «Q». Если они их выберут, должно появиться сообщение «Пожалуйста, отметьте ответы перед вводом статистики». Остальные параметры всегда должны быть доступны для пользователя, но я не уверен, как настроить логическое значение, чтобы пользователь выбирал «M» перед выбором «S» и «Q». Кто-нибудь знает, как это сделать? Вот мой код до сих пор:Как настроить логическое в пользовательском меню?

public class Marker_Menu 
    { 
     public static void main(String args[])throws IOException 
     { 
      Quiz_Marker input2 = new Quiz_Marker(); 
      char arg[]= null; 

      System.out.println ("Welcome to the Quiz Grading System \n"); 

      char choice = menu(); 
      while(choice != 'E') 
      { 
       switch (choice) 
       { 
        case 'C': 
        input2.corAnsPrint(); 
        break; 

        case 'A': 
        input2.stuAnsPrint(); 
        break; 

        case 'M': 
        input2.quizMarking(); 
        break; 

        case 'S': 
        input2.stuStatsPrint(); 
        break; 

        case 'Q': 
        input2.quesStatsPrint(); 
        break; 

        default: 
        System.out.println("Your choice is invalid"); 
      } 
      choice = menu(); 
     } 
     System.out.println("Thank you for using the Quiz Marker System"); 
     System.exit(0);   
    } 

    public static char menu() throws IOException 
    { 


     System.out.println ("Please enter your choice \n" + 
      " C - Print Correct Answers \n" + 
      " A - Print Student Answers \n" + 
      " M - Mark the Student Answers \n" + 
      " S - Produce the Quiz Statistics \n" + 
      " Q - Produce Question Statistics \n" + 
      " E - Exit the System"); 

     Scanner input = new Scanner (System.in); 
     char choice = input.next().toUpperCase().charAt(0); 

     return choice; 

    } 
} 

ответ

0

Просто создайте логическую переменную, установите его при выборе 'M', и проверить его, если выбран 'S' или 'Q':

public static void main(String args[])throws IOException 
{ 
    boolean mSelected = false; 

    ... 

    while(choice != 'E') 
     { 
     switch (choice) 
     { 
      ... 

      case 'M': 
      mSelected = true; 
      input2.quizMarking(); 
      break; 

      case 'S': 
      if (mSelected) { 
       input2.stuStatsPrint(); 
      } else { 
       System.out.println("Please mark the answers before inputting statistics"); 
      } 
      break; 

      case 'Q': 
      if (mSelected) { 
       input2.quesStatsPrint(); 
      } else { 
       System.out.println("Please mark the answers before inputting statistics"); 
      } 
      break; 

      ... 
     } 

    ... 
+0

Спасибо! Это сработало. – Srk93

 Смежные вопросы

  • Нет связанных вопросов^_^