ユーザーに 4 つのオプションから選択させるメニュー システムを作成してみました。選択を区別するために、入力された int をチェックします。それは機能しますが、どういうわけかあまりエレガントではないと感じます。特に、selectedMenu の初期値を 1902475424 に設定して、ユーザーがいつ不一致の値を入力したかを確認する場合。ユーザーが誤って 1902475424 と入力することはないと思います。
メニューシステムを作成するためのより簡単な方法はありますか? これは主要な欠陥ですか?
はい、Javaの初心者です:-)
import java.util.Scanner;
import java.util.InputMismatchException;
public class Menu {
public void printMenu() {
System.out.println(
"1. Start new game\n" +
"2. Load game\n" +
"3. Settings\n" +
"4. Exit\n"
);
}
public void selectMenu() throws InputMismatchException {
int selectedMenu = 1902475424;
Scanner aScanner = new Scanner(System.in);
do {
selectedMenu = 1902475424;
try {
System.out.println("Try block begin.");
selectedMenu = aScanner.nextInt();
} catch (InputMismatchException e) {
System.out.println("Catch blok begin.");
System.out
.println("Invalid input, please input a number between 1-4.");
aScanner.nextLine();
}
if ((selectedMenu < 1 || selectedMenu > 4)
&& (selectedMenu != 1902475424)) {
System.out.println("Input out of range \"" + selectedMenu
+ "\". Input a number between 1-4.");
}
} while (selectedMenu == 1902475424
|| (selectedMenu < 1 || selectedMenu > 4));
if (selectedMenu >= 1 && selectedMenu <= 4) {
System.out.println("A new game will now start.");
}
}
}