2013-08-21 42 views
-2
else if (answer.equals("check value")){ 
     System.out.println("Of what?"); 
     System.out.println("Tax, Donations, Income, Profit, Expenditure, Services, Military, City or Economy."); 
     System.out.println("Do not use caps and spell it correctly otherwise it will not be recognised."); 
     String valueToCheck = scan.nextLine(); 
     if (valueToCheck == "tax"){ 
      System.out.println(tax); 
     }else if (valueToCheck == "donations"){ 
      System.out.println(donations + "donations per turn"); 
     }else if(valueToCheck == "income"){ 
      System.out.println(incomePerTurn + " income per turn"); 
     }else if(valueToCheck == "profit"){ 
      System.out.println(profitPerTurn + " profit per turn"); 
     }else if(valueToCheck == "expenditure"){ 
      System.out.println(expenditurePerTurn + "expenditure per turn"); 
     }else if(valueToCheck == "services"){ 
      System.out.println(servicesBudget + " to services budget"); 
     }else if(valueToCheck == "military"){ 
      System.out.println(militaryBudget + " to military budget"); 
     }else if(valueToCheck == "city"){ 
      System.out.println(cityBudget + " to cities budget"); 
     }else if(valueToCheck == "economy"){ 
      System.out.println(economy + " to total economy"); 
     } 
     newTurn();} 

你好,每當我運行我的程序並鍵入'檢查值'我沒有得到任何錯誤,事實上我什麼也沒有得到。我只是想知道爲什麼沒有返回。謝謝你的幫助!我的程序不打印變量

+3

請添加來自'else if'的代碼。 –

+5

這可能是不足以幫助我們的代碼。但是你做錯的一件事是使用'=='進行字符串比較。改用'.equals()'。 –

+2

您認真在'answer'上使用'equals',但不在'valueToCheck'上使用? – rgettman

回答

2

沒有任何顯示,因爲沒有滿足這些條件。 「==」運算符比較引用,但要比較內容。由於您要爲每次比較創建新的字符串,因此它們不會與「valueToCheck」中存儲的字符相匹配。

有關更多詳細信息,請參見this question

此外,在未來,請嘗試猜測發生錯誤的位置,並在發佈前搜索論壇。例如,在這裏你有很多字符串比較,你想要的輸出是這些比較的結果。當你沒有得到你想要的結果時,你應該在這裏或其他地方查找「在java中的字符串比較」,以確保你在發佈前正確地做到了。