我的程序没有打印变量

时间:2013-08-21 19:21:38

标签: java if-statement equals

    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();}

您好,每当我运行我的程序并输入'check value'时我都没有错误,事实上我什么都没得到。我只是想知道为什么没有返回。谢谢你的帮助!

1 个答案:

答案 0 :(得分:2)

没有任何东西出现,因为这些条件都没有得到满足。 “==”运算符会比较引用,但您要比较内容。由于您为每个比较创建了新的字符串,因此它们与存储在“valueToCheck”中的字符串不匹配。

有关详细信息,请参阅this question

此外,将来,请尝试猜测错误的位置,并在发布前搜索论坛。例如,在这里你有很多字符串比较,你想要的输出是这些比较的结果。当你没有得到你想要的结果时,你应该在这里或其他地方查找“java中的字符串比较”,以确保你在发布之前正确地做到了。