为什么我的java程序会跳过if语句?

为什么我的java程序会跳过if语句?,java,if-statement,skip,Java,If Statement,Skip,我只有15岁,是java新手,所以我试图构建一个简单的计算器,但我似乎不明白为什么这个if语句被忽略了。我必须检查以确保所有值都已存储,是的,它们已存储,因此我看不到任何其他问题可以解释这一点。任何帮助都会很好!在第二个类//This if语句中查找注释 头等舱 二等 将字符串与==进行比较通常不会按照您希望的方式进行。这是因为字符串是对象,==将对象引用相互比较,而不是检查字符串是否包含相同的文本 请尝试String.equals: if (Operators.operation.equals

我只有15岁,是java新手,所以我试图构建一个简单的计算器,但我似乎不明白为什么这个if语句被忽略了。我必须检查以确保所有值都已存储,是的,它们已存储,因此我看不到任何其他问题可以解释这一点。任何帮助都会很好!在第二个类//This if语句中查找注释

头等舱

二等


将字符串与
==
进行比较通常不会按照您希望的方式进行。这是因为字符串是对象,
==
将对象引用相互比较,而不是检查字符串是否包含相同的文本

请尝试
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)