0

嗨,我有以下代码:

  boolean result = someexpression();

            if(!result)
            {
            System.out.println("False..."); 
            }
            if (result); 
            {
                System.out.println("True");
            }

它同时打印(假和真)我也尝试过使用类似的东西

     if(result==true)

但这似乎不起作用。无论变量的值是什么,它都只是进入条件。??我正在使用eclipse,这只发生在特定部分。

4

2 回答 2

8
if (result); 

删除;此行末尾的 。

对于;,它的意思是“如果resulttrue,那么什么都不做”。包含下一条语句的块不是 the 的一部分,if并且将始终被执行。它与此完全相同:

if (result)   // if result is true
    ;         // then do nothing

System.out.println("True");  // is always executed
于 2012-06-13T14:28:34.897 回答
7

在 if 语句的末尾有一个流氓分号。

if (result);

这使您的代码评估为

if (result) {

}
{
    System.out.println("True");
}

其中第二对{}表示始终执行的代码块,因为它不再是 if 控制块的一部分。所以去掉那个分号(我认为这不是你要放在那里的)!

于 2012-06-13T14:28:39.770 回答