2014-09-12 86 views
-3

我试图通过BlueJ的使Java中的一个简单的程序,但是在编译时它给了我一个错误‘找不到符号 - 可变totAMTpizza’任何一个人,修复。的Java“找不到符号 - 可变totAMTpizza”

+3

您应该复制并粘贴代码而不是屏幕截图。 – Anthony 2014-09-12 19:59:43

+0

你在哪里使用该变量?它看起来像它在那些if语句中唯一定义的,并且在其他地方无法使用。 – Dave 2014-09-12 20:00:15

+0

提出问题的错误方法是,查看Java中变量的范围。 – gd1 2014-09-12 20:00:34

回答

2

如果声明if块中的变量,这只是该块内可见。在程序中声明这三个ifelse if块内totAMTpizza变量,所以它不是可见的外那三个blo中正。

解决方法是将声明移至外部。

int pizzaQTY = input.nextInt(); 
int totAMTpizza; 

System.out.printf('\f'); 

if (pizzaSize == 1) { 
    int pizzaSmall = 120; 
    totAMTpizza = pizzaSmall * pizzaQTY; 
} 
else if (pizzaSize == 2) { 
    ... 
} 
else if (pizzaSize == 3) { 
    ... 
} 

对于它的价值,你可以在的if/else条件后移动计算totAMTpizza,所以你不要重复自己。

int pizzaQTY = input.nextInt(); 
int pizzaCost; 

if (pizzaSize == 1) { 
    pizzaCost = 120; 
} 
else if (pizzaSize == 2) { 
    pizzaCost = 140; 
} 
else if (pizzaSize == 3) { 
    pizzaCost = 160; 
} 

int totAMTpizza = pizzaQTY * pizzaCost;