我正在为最后的项目尝试这个。出于某种原因,我的程序没有意识到我正在提示用户输入,而不是为用户提供输入信息的空间,程序就退出了。这是代码:
int choice;
Scanner input = new Scanner (System.in);
System.out.println("Enter a number between 1 and 4.");
choice = input.nextInt();
if (choice > 0 && choice < 5) {
System.out.print("To return to the main menu, enter 'main'. To return to the Forces Menu, enter 'forces'. To quit, enter 'quit'.");
choice2 = input.nextLine();
if (choice2.compareToIgnoreCase(MM) == 0) {
mainMenu();
} else if (choice2.compareToIgnoreCase(F) == 0) {
forces();
} else if (choice2.compareToIgnoreCase(X) == 0) {
System.out.println("Thank you! Goodbye!");
}
}
MM,F和X只是用户输入第二个选择时要使用的字符串变量。在显示“要返回主菜单...输入'退出'。”之后,程序停止而不是提示用户输入。如果我用if(选择...)替换if(选择...),它只会重复提示是否退出或返回的语句。我读了一篇类似的帖子,建议替换第一个input.nextInt();使用input.nextLine();,但这对我不起作用。顺便说一下,我正在使用Netbeans 7.2进行编程。
答案 0 :(得分:1)
这是您需要的行
choice = Integer.parseInt(input.nextLine());
而不是choice = input.nextInt();
或者放
input.nextLine();
之后
choice = input.nextInt();