我目前正在为课程制定财务规划应用程序,但我无法获得一个循环,其中有一个条件可以工作。尽管有条件,它仍然保持循环 - 这几乎就像完全忽略了条件一样。
这是我的代码 - 请帮助!
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;
}
}
非常感谢, 迪伦
答案 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中是否具有相同的地址 值比较意味着检查对象内的值