Java вывод меню. Возвращение к главному меню
Всем добрый день. Я бы хотел спросить как после выполнения определённого момента кода через оператор switch он возвращался в главное меню? Например
public static void main(String[] args) {
System.out.println("Choise whats you wanna. ");
System.out.println("If you wanna vektor tap \"1\".");
System.out.println("If you wanna Snowman tap \"2\".");
System.out.println("If you wanna stop tap \"0\".");
int choise = sc.nextInt();
boolean end = false;
do {
switch(choise) {
case 1:vektor();
break;
case 2: Snowman.main(); //это лежит в отдельном файле
break;
case 0: end = true;
break;
default: System.out.println("Inncorect value ");
}
}while(!end );
}
И что бы после выполнения кода в case 1 он возвращался обратно в меню для выбора.
Ответы (2 шт):
Автор решения: had0uken
→ Ссылка
Вывести меню в отдельный метод, и вызывать его в конце нужного case. Выглядит примерно так:
public class Test {
public static void main(String[] args) {
menu();
}
public static void menu(){
System.out.println("Choise whats you wanna. ");
System.out.println("If you wanna vektor tap \"1\".");
System.out.println("If you wanna Snowman tap \"2\".");
System.out.println("If you wanna stop tap \"0\".");
int choise = sc.nextInt();
boolean end = false;
do {
switch(choise) {
case 1:vektor();
menu(); // <--- Возврат к основному меню
break;
case 2: Snowman.main(); //это лежит в отдельном файле
break;
case 0: end = true;
break;
default: System.out.println("Inncorect value ");
}
}while(!end );
}
}
И дальше, в зависимости от логики вашей программы, выбираете пункты, в которых нужно организовывать выход либо возврат в основное меню
Автор решения: Nowhere Man
→ Ссылка
В данном случае проще будет внести вывод меню в тело цикла. Также рекомендуется использовать более лаконичную стрелочную форму записи switch, официально существующую с Java 14.
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
boolean end = false;
do {
System.out.println("Please select your option: ");
System.out.println("Tap \"1\" for vektor.");
System.out.println("Tap \"2\" for Snowman.");
System.out.println("Tap \"0\" to exit.");
switch (sc.nextInt()) {
case 1 -> vektor();
case 2 -> Snowman.main();
case 0 -> end = true;
default -> System.out.println("Incorrect value ");
}
} while(!end);
}