程序不承认输入声明?

时间:2012-12-06 06:30:47

标签: java

我正在为最后的项目尝试这个。出于某种原因,我的程序没有意识到我正在提示用户输入,而不是为用户提供输入信息的空间,程序就退出了。这是代码:

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进行编程。

1 个答案:

答案 0 :(得分:1)

这是您需要的行

choice = Integer.parseInt(input.nextLine()); 

而不是choice = input.nextInt();

或者放

input.nextLine(); 

之后

choice = input.nextInt();