問題規範:無限循環(菜單進入無限循環);無限循環java
目標:請求用戶輸入一個整數,然後按照指定的邏輯進行編碼。如何避免無限循環?
代碼:
public Purchase groceryStoreMenu(LemonadeStand lemonadeStand){
boolean getMenu = true;
int userEnteredNumber = -1;
currentPurchase = new Purchase();
while(getMenu){
try{
System.out.println("Grocery Store");
System.out.printf("%s\t%s%n%s\t%s%n%s\t%s%n%s\t%s%n%s\t%s%n%s\t%s%n" , "1:" , "Buy lemons", "2:", "Buy cups" , "3:" , "Buy sugar" ,
"4:" , "Buy ice" , "5:" , "Done"); //change this
userEnteredNumber = reader.nextInt();
if (userEnteredNumber == 1) {
money = lemonadeStand.profit(0);
lemonsMenu(money);
}else if (userEnteredNumber == 2){
money = lemonadeStand.profit(0);
cupsMenu(money);
}else if (userEnteredNumber == 3){
money = lemonadeStand.profit(0);
sugarMenu(money);
}else if (userEnteredNumber == 4){
money = lemonadeStand.profit(0);
iceMenu(money);
}else{
money = lemonadeStand.profit(0);
dailyGreetingMenu();
}
if (userEnteredNumber != 1 && userEnteredNumber !=2 && userEnteredNumber != 3
&& userEnteredNumber != 4 && userEnteredNumber != 5) {
throw new Exception();
} else if(userEnteredNumber == 6) {
getMenu = false;
//break;
} else {
getMenu = false;
//break;
}
}
catch(Exception e)
{
System.out.println("Error in number format. Enter a valid number from the choices (1,2,3,4,5,6)");
}
}
return currentPurchase;
,格式化只是......可怕......我幾乎不能讀的代碼:/ – Doorknob
reader.nextInt()可能不會阻止。我會開始在那裏調試。 – tier1
@ user3053348你會接受答案嗎? –