这对我来说根本没有意义。
这是我的代码:
boolean that = false;
if (that == true);
{
System.out.println("That is " + that);
}
然而即使我的输出是
,它也会打印出来That is false
我在java中这样做,我正在使用Eclipse galileo,因此每次编译/运行我的程序时都会保存它,因此编译器应该获得我程序的更新版本。 发生了什么事?
答案 0 :(得分:8)
一个常见的错误。删除;
语句末尾的if
。
BTW如果我使用括号并且使用IDE的代码格式化程序,我总是写下以下内容。
if (that == true) {
System.out.println("That is " + that);
}
这意味着,如果您排名错误;
或{
,则可能更为明显。
答案 1 :(得分:3)
这是因为你有分号:
if (that == true);
删除分号!它会导致代码在检查条件(that == true)
后无效 - 技术上它是一个“空语句” - 即我们可以像这样循环:
for (int i = 0; ; i++){
System.out.println("Thanks" );
}
它会永远存在!
答案 2 :(得分:3)
删除;
boolean that = false;
if (that == true)
{
System.out.println("That is " + that);
}
否则始终执行打印。
答案 3 :(得分:2)
试试这样:
boolean that = false;
if (that)
{
System.out.println("That is " + that);
}
请注意代码中if
之后的额外分号?这就是原因。
逻辑测试以分号结束,然后始终执行下一个块。
如果你删除分号,它将符合你的直觉。
答案 4 :(得分:2)
if (that == true);
// ^ The extra colon you dont need