私はこの問題を抱えています。実際に機能するようになったので、より多くのクエリが発生しましたが、理由がわかりません。現在、Java を学習し、cengage の第 7 版を読んでいます。これは演習の 1 つです。
だから私はこの方法を持っています:
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;
正常に動作しますが、これはなぜですか? 他のメソッドで使用する必要がないため、メソッド内で使用する方が賢明に思えました。