簡體   English   中英

奇怪的JAVA布爾值評估問題

[英]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); 

刪除; 在此行的末尾。

; ,表示“如果resulttrue ,則不執行任何操作”。 包含下一條語句的塊不是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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM