Я создал меню на Java, в котором у каждой опции есть другое меню. Я хочу знать, могу ли я выйти из внутреннего меню обратно в главное меню.
Изменение: добавлены опции главного меню
System.out.println("Main Menu");
System.out.println("1. Hourly Employees");
System.out.println("2. Salary Employees");
System.out.println("3. Commission Employees");
System.out.println("4. Weekly Calculations");
System.out.println("5. Exit Program");
while(true){
switch(choice){
case 1:
HourlyEmployeeChoice HEC = new HourlyEmployeeChoice();
//HourlyEmployeeChoice is a class with HEmployeeMenu() method
HEC.HEmployeeMenu();
break;
//case 2-4: to be added later
case 5:
System.out.println("Goodbye!");
System.exit(0);
}
}
Это мое главное меню. Я только написал код для первого варианта и вариант для выхода.
public void HEmployeeMenu(){
while(true){
//submenu options
int hourlyChoice = userChoice.nextInt();
switch(hourlyChoice) {
case 1:
//code
break;
case 2:
//code
break;
case 3:
//code
break;
case 4: //exit submenu
return;
default:
System.out.println("Please make a valid selection");
}
}
}
Это метод, в который я помещаю свой второй оператор switch внутри. Выбор опции 4 (выходное подменю) обновляется в подменю, а не в главном меню. Я думаю, что причиной этого является цикл while, который у меня есть для подменю. Я не хочу отключать этот параметр, потому что я хочу иметь возможность продолжать делать выбор после случаев 1-3.
Я считаю, что проблема, с которой вы сталкиваетесь, - это
while(true){
// HERE
switch(choice){
Вам нужно добавить код, чтобы снова получить choice
, иначе он всегда будет тем, что вы впервые ввели.
Это перемещение отображения главного меню и ввода choice
на что-то вроде
while(true){
System.out.println("Main Menu"); // <-- Added based on your edit.
System.out.println("1. Hourly Employees");
System.out.println("2. Salary Employees");
System.out.println("3. Commission Employees");
System.out.println("4. Weekly Calculations");
System.out.println("5. Exit Program");
int choice = userChoice.nextInt(); // <-- HERE
switch(choice){
while (true)
и передint choice = userChoice.nextInt();