我的if语句总是返回true,无论如何

时间:2012-04-29 15:58:39

标签: java if-statement

这对我来说根本没有意义。

这是我的代码:

boolean that = false;
        if (that == true);
        {
            System.out.println("That is " + that);
        }

然而即使我的输出是

,它也会打印出来
That is false

我在java中这样做,我正在使用Eclipse galileo,因此每次编译/运行我的程序时都会保存它,因此编译器应该获得我程序的更新版本。 发生了什么事?

5 个答案:

答案 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