-1

我目前正在为班级开发一个财务规划应用程序,但我无法让其中包含条件的循环正常工作。尽管有条件,它只是一直在循环——就好像条件被完全忽略了一样。

这是我的代码 - 请帮助!

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

4 回答 4

1

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

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

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

a == b => false
a.equals(b) => true
于 2013-09-18T18:25:22.207 回答
0

如果您使用 == 操作符,它会比较对象引用是否匹配。您应该使用等号运算符

if (myString2.equals("yes"))
于 2013-09-18T18:25:31.450 回答
0

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

if (myString2.equals("yes")) {
于 2013-09-18T18:25:49.870 回答
0

你应该使用equals ...检查这个帖子

如何比较 Java 中的字符串?

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

于 2013-09-18T18:26:02.770 回答