exception
を印刷する前に、コンソール出力がメニューをもう一度表示する理由が分かりますか? 処理の流れ
1. item 1
2. item 2
3. Quit
Please choose a item:
WRONGINPUT <---- user input
Invalid input <---- where I want the exception shows
1. item 1
2. item 2
3. Quit
Please choose a item:
、私が得るものです:
1. item 1
2. item 2
3. Quit
Please choose a item:
WRONGINPUT <---- user input
1. item 1
2. item 2
3. Quit
Please choose a item:
Invalid input <---- why the exception is shown here?
コードを以下に示します。
// code omitted
Scanner scanner = new Scanner(System.in);
int mainMenu = -1;
do {
try {
System.out.println("1. item 1");
System.out.println("2. item 2");
System.out.println("3. Quit");
System.out.println("Please choose a item:");
mainMenu = scanner.nextInt();
} catch (InputMismatchException e) {
scanner.nextLine();
System.err.println("Invalid input");
}
if (mainMenu == 1)
// do something
else if (mainMenu == 2)
// do something
else if (mainMenu == 3)
System.out.println("Quitting...");
} while (mainMenu != 3);
あなたは 'scanner'の初期化を追加できますか? – TDG
'scanner 'の初期化は' do-while'ループの上にあります。しかし、まだこの不正な流れを持っていた – Matt
@TDGうん、私はEclipseからそれを走った。上記の出力画面を添付しました。 – Matt