2013-06-27 40 views
0

所以基本上,我試圖創建一個簡單的Java計算器爲以下功能,但它似乎我的功能沒有執行他們應該的方式(即+不添加, - 不減)。將不勝感激,而不是一些幫助:)簡單的java計算器幫助需要

if (ope == "+") { 
     //add 
    } else if (ope == "-") { 
     //subtract 
    } else if (ope == "*") { 
     //multiply 
    } else if (ope == "/") { 
     //divide 
    } 
} 
+1

(另外,請閱讀http://tinyurl.com/so-list和http://tinyurl.com/so-hints) –

+0

使用的equals()方法來比較字符串而不是'==' – Siva

+0

Stack Overflow是協作編輯的。如果您在編輯問題時遇到問題,Stack Overflow可能不適合您。 –

回答

4

錯誤String比較:

if (ope == "+") { 
} else if (ope == "-") { 
} else if (ope == "*") { 
} else if (ope == "/") { 

你應該有:

if ("+".equals(ope)) { 
} else if ("-".equals(ope)) { 
} else if ("*".equals(ope)) { 
} else if ("/".equals(ope)) { 
+0

感謝亞當,這固定操作問題,雖然它似乎在第一次運行(這是正確的)之後,任何其他操作給出無效的輸出。你會碰巧知道這個問題的根源在哪裏?編輯:似乎它可能是與清除功能,不知道它是什麼造成它:S – Ted

0

在Java SE 7和更高版本,你可以使用一個字符串對象在switch語句的表達式中。 More info

if(ope != null) 
{ 
switch(ope) 
{ 
    case "+" : do1(); break; 
    case "-" : do2(); break; 
    case "*" : do3(); break; 
    case "/" : do4(); break; 
    default : doDefault(); break; 
} 
} 

更多信息有關String comparison

+0

我個人討厭這個功能,因爲它導致硬編碼值。在「枚舉」中定義可能的值要好得多,它們也可以在switch語句中使用(並由編譯器檢查) – Esteve