[英]My if statement ALWAYS returns true, no matter what
这对我来说根本没有意义。
这是我的代码:
boolean that = false;
if (that == true);
{
System.out.println("That is " + that);
}
然而,即使我的输出是
That is false
我在 java 中执行此操作,并且使用 Eclipse galileo,因此每次编译/运行我的程序时,它都会保存它,因此编译器应该获得我程序的更新版本。 这是怎么回事?
一个常见的错误。 删除;
在if
语句的末尾。
顺便说一句,如果我使用括号并使用 IDE 的代码格式化程序,我总是会写以下内容。
if (that == true) {
System.out.println("That is " + that);
}
这意味着如果您放错了;
或{
可能更明显。
这是因为你在这里有分号:
if (that == true);
去掉那个分号! 它会导致代码在检查条件(that == true)
之后什么都不做——从技术上讲,它是一个“空语句”——即我们可以有一个像这样的循环:
for (int i = 0; ; i++){
System.out.println("Thanks" );
}
它会永远存在!
去除那个 ;
boolean that = false;
if (that == true)
{
System.out.println("That is " + that);
}
否则总是执行打印。
像这样尝试:
boolean that = false;
if (that)
{
System.out.println("That is " + that);
}
注意到代码中if
后面的额外分号了吗? 这就是为什么。
逻辑测试以分号结束,然后始终执行下一个块。
如果您删除分号,它将符合您的直觉。
if (that == true);
// ^ The extra colon you dont need
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.