Спецификация проблемы: Бесконечная петля (меню входит в бесконечный цикл);Infinite loop 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 вы примете ответ? –