java:如果while循环中的条件不起作用,则简单
我目前正在为班级开发一个财务规划应用程序,但我无法获得一个包含条件的循环。它只是不断循环,尽管条件-这几乎就像是条件被完全忽略 这是我的代码-请帮忙java:如果while循环中的条件不起作用,则简单,java,if-statement,while-loop,Java,If Statement,While Loop,我目前正在为班级开发一个财务规划应用程序,但我无法获得一个包含条件的循环。它只是不断循环,尽管条件-这几乎就像是条件被完全忽略 这是我的代码-请帮忙 while (true){ Scanner scanVar = new Scanner(System.in); System.out.println("\nEnter expenditure item: "); String myString = scanVar.nextLine();
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;
}
}
非常感谢,,
Dylan你真的想使用
mystring2.equals(“yes”)
(或者更好的是,“yes”。equals(mystring2)
)
对象上的=
操作符测试它们是否是相同的实例,而不是相同的字符串值
String a = new String("yes");
String b = new String("yes");
a == b => false
a.equals(b) => true
如果使用==运算符,则会比较对象引用是否匹配。您应该使用equals运算符
if (myString2.equals("yes"))
按以下方式更改条件,然后重试:
if (myString2.equals("yes")) {
你应该使用相等的。。。查看此帖子 引用比较意味着检查两个对象在Memory中是否具有相同的地址
值比较意味着检查对象内部的值错误:“string1==string2”。更正:string1.equals(string2)。谢谢…我在读了前面的答案“上面-但是谢谢你”后才意识到。