2014-09-12 29 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;