Java 变量不会改变
我必须确保我包含了处理异常的语句,但当我这样做时,变量量不会改变。帮忙Java 变量不会改变,java,exception,Java,Exception,我必须确保我包含了处理异常的语句,但当我这样做时,变量量不会改变。帮忙 public static void main(String[] args){ AmwayTickets run = new AmwayTickets(); System.out.print(run.ticketAmount()); } public int ticketAmount(){ System.out.println("Enter the amount of tickets you wis
public static void main(String[] args){
AmwayTickets run = new AmwayTickets();
System.out.print(run.ticketAmount());
}
public int ticketAmount(){
System.out.println("Enter the amount of tickets you wish to purchase: ");
int amount = 0;
try {
amount = keyboard.nextInt();
}
catch (InputMismatchException e){
System.out.println("Invalid Amount");
ticketAmount();
return amount;
}
if (amount < 0){
System.out.println("Invalid Amount");
ticketAmount();
return amount;
}
return amount;
}
您确定应该使用递归来解决此问题吗?即使您应该这样做,递归调用也是错误的,因为您没有在返回amount之前将返回的值赋给amount变量。i、 e
amount = ticketAmount(); // note the difference
return amount;
或者更简单地说:
return ticketAmount();
但我建议你不要这样做。如果这是我的代码,我会使用一个简单的while循环
boolean amountCorrect = false;
while (!amountCorrect) {
try {
// try to get an assign amount
// if successful, assign amountCorrect = true; on the next line
} catch (InputMismatchException e) {
// give error warning here
}
}
你想换吗?如果nextInt抛出一个异常,意味着出现了问题,那么它是否应该更改?你在问什么?详细说明你正在尝试做什么,你期望什么,什么让你困惑。while循环由于某种原因对我不起作用。。。我一定做得不对。第一个建议非常有效,非常感谢@user1695758:第一个建议很糟糕,只是为了告诉你为什么你的代码不起作用,但我不建议你这么做。请向我们展示您的while循环尝试,作为对原始帖子的编辑,让我们看看是否可以帮助您使其正常工作。