이 루프가 호출되면 무한대로 실행되고 사용자가 아무 것도 입력하지 않고 catch 오류를 표시하는 경우. 나는 이것에 대한 어떤 이유도 찾을 수 없다. 제안?루프가 무한 반복되고 사용자에게 묻지 않고 오류 메시지 표시
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");
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 if (userEnteredNumber == 5){
getMenu = false;
} else {
throw new Exception();
}
} catch(Exception e) {
System.out.println("Error in number format. Enter a valid number from the choices (1,2,3,4,5)");
}
}
return currentPurchase;
컴파일 시간 오류가 발생하지 않았습니까? –
@VD '아니에요. – user3053348
독자가 스캐너라고 가정합니다. 이것 좀 봐 : http://stackoverflow.com/questions/11643222/java-scanner-nextint –