Я делаю школьное задание, и на этот раз я думал об использовании оператора switch, поскольку он выглядел более эффективным.Переключатель, возвращающий одно и то же заявление несколько раз
Это просто что-то основное, но если я введу письмо, например, и после этого числа 1, например, он вернет случай 1 дважды?
Это мой код для всего класса до сих пор:
import java.util.InputMismatchException;
import java.util.Scanner;
public class Test {
private int option;
public static void main(String[] args) {
Test t = new Test();
t.start();
t.optionMenu();
}
public void start() {
System.out.println("Make your choice:");
System.out.println("1: Play");
System.out.println("2: Options");
System.out.println("3: Exit");
}
public void optionMenu() {
try {
Scanner sc = new Scanner(System.in);
this.option = sc.nextInt();
System.out.println(this.option);
} catch (InputMismatchException e) {
System.out.println("Please enter a number");
optionMenu();
}
switch (this.option) {
case 1:
System.out.println("Game starting...");
break;
case 2:
System.out.println("Loading options");
break;
case 3:
System.out.println("Game exiting...");
System.exit(0);
break;
default:
System.out.println("Enter a valid number (1, 2 or 3");
break;
}
}
}
Любая помощь будет высоко ценится, спасибо!
Вам нужно какое-то заявление вокруг инструкции switch. Просто продолжайте цикл до тех пор, пока вы не получите действительный ввод (т. Е. 1, 2 или 3). –
Цикл должен находиться вокруг блока catch try, который держит его сканер, если что-либо, а не оператор switch. – Drifter64