【发布时间】:2017-11-25 12:44:54
【问题描述】:
请看一下这段代码,告诉我哪里出错了?我是 java 新手,我在下面的 switch 语句中得到了一个无限循环。
以下是我使用 system.out 作为占位符调用的完整方法,直到我修复了无限循环。
提前致谢
public void startuserinterface()
{
Scanner Menukeyboard = new Scanner(System.in);
displaymainmenu();
mainMenuChoice = Menukeyboard.nextInt();
while(mainMenuChoice!=EXIT)
{
switch(mainMenuChoice){
case DISPLAY_ROOMS : {
System.out.println(" I am displaying rooms ");
break;
}
case DISPLAY_GUESTS : {
System.out.println(" I am displaying guests ");
break;
}
case PROCESS_RESERVATION :
{
System.out.println(" I am displaying reserving ");
displayreservationmenu();
resMenuChoice = Menukeyboard.nextInt();
runResMenu(resMenuChoice);
break;
}
case PROCESS_PAYMENT :
{
System.out.println(" I am payin ");
break;
}
}
}
System.out.println(" Goodbye ");
displaymainmenu();
}
【问题讨论】:
-
你永远不会改变
mainMenuChoice。 -
如果我有一个 break 语句,为什么我需要更改 mainmenuchoice?它不应该继续循环中断。
-
因为
break打破了case,而不是while循环。 -
如果你调用的方法(即
displayreservationmenu()、enukeyboard.nextInt()和runResMenu())不影响mainMenuChoice,它永远不会得到EXIT的值,所以while 循环永远不会结束。 -
感谢大家的反馈。我已经更新了while循环由用户输入驱动的方法。
标签: java infinite-loop