我有这个问题,更多的是一个查询,因为我实际上让它工作了,但我不明白为什么,我目前正在学习 java 并阅读 cengage 第 7 版,这是练习之一。
所以我有这个方法:
public static void calculatePrice(){
Scanner userInput = new Scanner(System.in);
int orderNumber;
double totalBill = 0;
orderNumber = userInput.nextInt();
switch(orderNumber){
case 1:
totalBill = totalBill + American;
displayMenu();
calculatePrice();
break;
case 2:
totalBill = totalBill + Espresso;
displayMenu();
calculatePrice();
break;
case 3:
totalBill = totalBill + Latte;
displayMenu();
calculatePrice();
break;
case 0:
System.out.println("Your total bill will be $"+ totalBill);
break;
}
}
本章正在教我决策,我决定在这种情况下使用开关。我有另一种询问用户问题的方法。
我对这种方法的问题是字段:
double totalBill = 0;
这不起作用,我不知道为什么,程序编译但它总是返回 0 的设定价格,不管我在案例场景中的逻辑如何。
但是,当我从方法中删除该字段并将其放在顶部时,使其成为类范围:
private static double totalBill = 0;
它工作正常,这是为什么呢?在方法中使用它似乎更聪明,因为没有其他方法需要使用它。