2013-08-21 41 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中的字符串比较”,以确保你在发布前正确地做到了。