为什么我的java程序会跳过if语句?
我只有15岁,是java新手,所以我试图构建一个简单的计算器,但我似乎不明白为什么这个if语句被忽略了。我必须检查以确保所有值都已存储,是的,它们已存储,因此我看不到任何其他问题可以解释这一点。任何帮助都会很好!在第二个类//This if语句中查找注释 头等舱 二等为什么我的java程序会跳过if语句?,java,if-statement,skip,Java,If Statement,Skip,我只有15岁,是java新手,所以我试图构建一个简单的计算器,但我似乎不明白为什么这个if语句被忽略了。我必须检查以确保所有值都已存储,是的,它们已存储,因此我看不到任何其他问题可以解释这一点。任何帮助都会很好!在第二个类//This if语句中查找注释 头等舱 二等 将字符串与==进行比较通常不会按照您希望的方式进行。这是因为字符串是对象,==将对象引用相互比较,而不是检查字符串是否包含相同的文本 请尝试String.equals: if (Operators.operation.equals
将字符串与
==
进行比较通常不会按照您希望的方式进行。这是因为字符串是对象,==
将对象引用相互比较,而不是检查字符串是否包含相同的文本
请尝试String.equals
:
if (Operators.operation.equals("+")) {
... //and of course the same for the rest of the statements
祝你的节目好运 使用.equals(String)
方法,而不是=
。您的if结构将更改为:
if(运算符.operation.equals(“+”)){
运算符。plus()
.equals(String)
用于比较字符串,而=
用于比较其他所有内容。=
用于比较对对象的引用,.equals(String)
用于比较字符串
值
另外,将
while(loop=true)
更改为while(loop)
或while(loop==true)
;否则表示实际上正在更改循环的值
您不想将字符串与==进行比较,因为这样做是比较字符串的引用,而不是字符串的值。您需要使用.equals方法
从javadoc:
布尔等于(对象或对象)
当且仅当参数是表示与此对象相同的字符序列的字符串对象时,返回true
而且,你需要改变
while (loop = true)
到
=是赋值运算符,=是比较运算符。调试器告诉您什么?您是否在认为应该命中
if
语句时,单步执行该程序并检查其值?仅供参考while(loop==true)
而不是while(loop=true)
,并始终对字符串使用.equals()
,以实现此if(Operators.operation.equals(“+”))谢谢你现在工作得很好!!!还有其他方法可以改进我的编码吗?我很想学习java,就是从零开始,然后拿出一个完全可以工作的程序的想法!你应该学习语言以外的概念,例如:OOP、设计模式、架构模式、算法技术,使用SO;)。一种语言吗这只是让这些想法成为现实的媒介。一般来说,一个想法/一句话/一个问题会触发一个全新的世界进行调查。如果你继续学习,你会意识到你的代码有多糟糕。它会改进很多。一定要阅读。
if (Operators.operation.equals("+")) {
... //and of course the same for the rest of the statements
} else if (Operators.operation.equals("-")) {
Operators.subtract();
} else if (Operators.operation.equals("*")) {
Operators.multiple();
} else if (Operators.operation.equals("/")) {
Operators.divide();
} else {
Operators.invalidOperation();
}
if (Operators.operation.equals("+"))
while (loop = true)
while (loop)