java:简单如果while循环中的条件不起作用

时间:2013-09-18 18:22:36

标签: java if-statement while-loop

我目前正在为课程制定财务规划应用程序,但我无法获得一个循环,其中有一个条件可以工作。尽管有条件,它仍然保持循环 - 这几乎就像完全忽略了条件一样。

这是我的代码 - 请帮助!

while (true){
        Scanner scanVar = new Scanner(System.in);
        System.out.println("\nEnter expenditure item: ");
        String myString = scanVar.nextLine();
        Scanner scanVar2 = new Scanner(System.in);
        System.out.println("\nEnter expenditure value: ");
        double myDouble = scanVar2.nextDouble();
        expenditureMap.put(myString, myDouble);
        Scanner scanVar3 = new Scanner(System.in);
        System.out.println("\nAnother item? ");
        String myString2 = scanVar3.nextLine();
            if (myString2 == "yes") {
                continue;
            }
            else {
                break;
            }
    }

非常感谢, 迪伦

4 个答案:

答案 0 :(得分:1)

您真的想要使用mystring2.equals("yes")(甚至更好,"yes".equals(mystring2)

对象上的==运算符测试它们是相同的实例,而不是相同的字符串值....

String a = new String("yes");
String b = new String("yes");

a == b => false
a.equals(b) => true

答案 1 :(得分:0)

如果您使用的是==运算符,则会比较对象引用是否匹配。你应该使用equals运算符

if (myString2.equals("yes"))

答案 2 :(得分:0)

按如下所示更改条件,然后尝试:

if (myString2.equals("yes")) {

答案 3 :(得分:0)

你应该使用equals ...查看这篇文章

How do I compare strings in Java?

引用比较意味着检查两个对象在memoery中是否具有相同的地址 值比较意味着检查对象内的值