Как я могу вернуться к главному меню в Java * начинающий кодер * - PullRequest
0 голосов
/ 18 мая 2019

Я пытаюсь вернуться к главному меню, используя цикл while, и не могу кажется, заставить его работать. Как я могу реализовать это правильно?

Я пробовал цикл do-while и некоторое время, и он не работает. я делаю что-то не так, и я не знаю, что это такое

boolean main_menu = true;
while (main_menu) {


    System.out.println("       Welcome to Zoos Victoria          ");
    System.out.println("        M A I N        M E N U           ");
    System.out.println(" Zoo has the following ticketing options:");
    System.out.println("         1 = Child (4-5 yrs)             ");
    System.out.println("         2 = Adult (18+ yrs)             ");
    System.out.println("      3 = Senior (60+ yrs) "  +  "\n"     );

    do {
    // select ticket option
    System.out.println(" Please enter your option:"     );
    ticket_option = input.nextInt();

        switch (ticket_option) {

            // Child_ticket
            case 1: 
                ticket_price = child_ticket; 
                ticket_name = " Child tickets";
                break; 

            // adult ticket
            case 2:  
                ticket_price = adult_ticket;
                ticket_name = " Adult tickets";
                break;

            //senior ticket 
            case 3:
                ticket_price = senior_ticket;
                ticket_name = " Senior tickets";
                break;  
            default:    
                System.out.println("Invalid entry!");
        } 

    } while( ticket_option > 3); //end of do while loop


    System.out.println("    Enter the number of tickets you would like:");
    ticket_amount = input.nextInt();
    total_price = ticket_amount * ticket_price;

    System.out.println(" you are purchasing " + ticket_amount + 
           ticket_name + " at " + "$"+ticket_price  + " each!");

    System.out.println(" Press 1 to confirm purchase"); 
    confirm_purchase = input.nextInt();

    if (confirm_purchase == 1)
        System.out.println("Total amount payable: "+ "$"+total_price);  
    else {  
        System.out.println("invalid key!");           
        main_menu = false;
    }   
      if (confirm_purchase == 1 ) {
System.out.println("Total amount payable: "+ "$"+total_price);  
    main_menu = false;
} else {            
        System.out.println("invalid key!");
        }

   System.out.println("Would you like to go back to the main menu?(Y/N) ");
   to_continue = input.next().toUpperCase();

   if (to_continue.equals("Y")){
     // back to main menu here
       System.out.println("Back to the main menu");

   }  else {
       System.out.println("Total amount payable: "+ "$"+total_price);
       System.out.println("Have a great time!");


   }
}// end while loop

} }

В операторе if пользователь должен нажать 1, если нет, программа вернется в главное меню. В настоящее время это не работает должным образом.

1 Ответ

0 голосов
/ 18 мая 2019

В вашем состоянии для подтверждения покупки, если пользователь вводит неверный ключ, вы ставите main_menu в false. Вы должны удалить это.

if (confirm_purchase == 1) {
System.out.println("Total amount payable: "+ "$"+total_price);  
} else {  
      System.out.println("invalid key!");           
             // main_menu = false; 
}  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...