2014-03-24 78 views
0

我正在處理項目並遇到問題。我有以下代碼:Java嵌入語句無法訪問的局部變量

private void evaluateCurrentOperation() { 

    double token; 
    Object currentOperator = thisExprStack.pop(); 
    double currentOperand; 
    double result = 0.0; 

    while (!thisOpStack.isEmpty()) { 
     currentOperand = thisOpStack.pop(); 

     if (currentOperator.equals('+')) { 
      result += currentOperand; 
     } 
     if (currentOperator.equals('-')) { 
      result -= currentOperand; 
     } 
     if (currentOperator.equals('/')) { 
      result /= currentOperand; 
     } 
     if (currentOperator.equals('*')) { 
      result *= currentOperand; 
     } 

    } 
    thisExprStack.push(result); 

} 

我使用Eclipse,當我試圖使用本地變量「結果」沒有被使用,如果塊我有一個警告說,結果裏面。我很困惑,因爲我清楚地使用了這個變量,但是它的行爲不存在。我是Java的新手,所以我不知道如何調試我的代碼。

當我將「結果」推到「thisExprStack」時,它會推0.0。它初始化的值。我如何獲得它推動if塊內的「結果」?

+1

該變量顯然是「可訪問的」,因爲您可以分配給它。問題是你沒有在任何地方讀取變量,所以他們的編譯器警告你,儘管你正在寫它,你不會隨後在任何地方「使用」它? –

回答

-1

忽略上一個答案。相關的thisExprStack和thisOpStack是否已填充?

+0

即使將其更改爲此,結果仍然不受影響。 – Steven

+0

當然不是,這個答案是不正確的,鑄造不會改變任何東西,除了幾條指令和更多限制打字。 – Darkhogg

+0

這個ExStack被填充,我只是意識到我在接下來的部分有問題。我應該從這個ExstStack將操作符​​彈出到thisOpStack中,直到找到一個操作符。我不確定如何用一個while循環完成這個。 – Steven