您好我有以下代码:
boolean result = someexpression();
if(!result)
{
System.out.println("False...");
}
if (result);
{
System.out.println("True");
}
它打印两个(False和true) 我也尝试过像
这样的东西 if(result==true)
但似乎没有做到这一点。无论变量的值是什么,它只是进入条件。我正在使用eclipse,这只发生在特定部分。
答案 0 :(得分:8)
if (result);
删除此行末尾的;
。
使用;
,表示“如果result
为true
,则不执行任何操作”。包含下一个语句的块不是if
的一部分,将始终执行。它与此完全相同:
if (result) // if result is true
; // then do nothing
System.out.println("True"); // is always executed
答案 1 :(得分:7)
你在if语句的末尾有一个流氓分号。
if (result);
这使您的代码评估为
if (result) {
}
{
System.out.println("True");
}
其中第二对{}
表示总是被执行的代码块,因为它不再是if控制块的一部分。所以摆脱那个分号(我假设不是你打算放在那里)!