我是新来的Java程序员。我正在编写一个有关餐厅菜单的程序,但是我的价格无法正确计算。每次给我0.0,应该是11.0
public class Main {
public static double priceBreadrollType;
public static double priceMeat;
public static double totalPrice;
public static void main(String[] args) {
setTotalPrice();
}
public static void priceBread (){
priceBreadrollType = 1;
}
public static void priceMeat(){
priceMeat = 10;
}
public static void setTotalPrice(){
totalPrice = priceBreadrollType + priceMeat;
System.out.println("The total prize " + totalPrice);
}
}
答案 0 :(得分:8)
您永远不会调用将相应静态变量设置为priceBread ()
和priceMeat()
的{{1}}和1
方法,因此默认情况下它们仍为10
。 / p>
尝试:
0.0
答案 1 :(得分:0)
这里的真正问题是您正在混淆字段和方法。
您应该只使用字段,或者仅使用方法来获取/更新值。
priceBreadrollType + priceMeat;
添加时仅将字段添加为0。
答案 2 :(得分:0)
静态块和静态方法之间有一些不同。
public class Main {
public static double priceBreadrollType;
public static double priceMeat;
public static double totalPrice;
static {
/* priceBreadrollType = 1;
priceMeat = 10; */
/* calling the static method in static block or initializing the price are same; */
priceBread();
priceMeat();
}
public static void main(String[] args) {
setTotalPrice();
}
public static void priceBread (){
priceBreadrollType = 1;
}
public static void priceMeat(){
priceMeat = 10;
}
public static void setTotalPrice(){
totalPrice = priceBreadrollType + priceMeat;
System.out.println("The total prize " + totalPrice);
}
}