Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无论发生什么情况,我的if语句总是返回true_Java_If Statement - Fatal编程技术网

Java 无论发生什么情况,我的if语句总是返回true

Java 无论发生什么情况,我的if语句总是返回true,java,if-statement,Java,If Statement,这对我来说毫无意义 这是我的代码: boolean that = false; if (that == true); { System.out.println("That is " + that); } 即使我的输出是 That is false 我用java做这件事,我用的是EclipseGalileo,所以每次我编译/运行我的程序时,它都会保存它,这样编译器就会得到我程序的更新版本。 发生了什么事?像这样试试:

这对我来说毫无意义

这是我的代码:

boolean that = false;
        if (that == true);
        {
            System.out.println("That is " + that);
        }
即使我的输出是

That is false
我用java做这件事,我用的是EclipseGalileo,所以每次我编译/运行我的程序时,它都会保存它,这样编译器就会得到我程序的更新版本。 发生了什么事?

像这样试试:

    boolean that = false;
    if (that)
    {
        System.out.println("That is " + that);
    }
注意代码中
if
后面的分号吗?这就是为什么

逻辑测试以分号结束,然后始终执行下一个块

if (that == true);
              // ^ The extra colon you dont need

如果你去掉分号,它将符合你的直觉。

一个常见的错误。删除
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);
     }

否则打印总是执行。

如果(that==true);:)删除;我爱你,不敢相信我没有意识到这一点-
if (that == true);
              // ^ The extra colon you dont need