[英]Weird JAVA Boolean Evaluation Issue
嗨,我有以下代碼:
boolean result = someexpression();
if(!result)
{
System.out.println("False...");
}
if (result);
{
System.out.println("True");
}
它同時打印(False和True),我也嘗試使用類似
if(result==true)
但這似乎並不能解決問題。 無論變量的值是多少,它都只是輸入條件。 我正在使用eclipse,這僅發生在特定的部分。
if (result);
刪除;
在此行的末尾。
用;
,表示“如果result
為true
,則不執行任何操作”。 包含下一條語句的塊不是if
一部分,將始終執行。 與此完全相同:
if (result) // if result is true
; // then do nothing
System.out.println("True"); // is always executed
如果if語句的末尾有流氓分號。
if (result);
這使您的代碼評估為
if (result) {
}
{
System.out.println("True");
}
其中第二對{}
表示一個代碼塊,由於它不再是if控制塊的一部分,因此始終可以執行。 因此,請刪除該分號(我認為這不是您要放入的分號)!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.