2016-07-14 39 views
-1

當我嘗試下面的Java代碼
分配false值到我的布爾變量b,並使用它,如果在同一個語句條件
有一個從Eclipse的IDE
一種消息,暗示我,"The local variable b is never read"Eclipse「局部變量b從來沒有讀過」msg雖然我分配並使用布爾java變量?

boolean b = false; 
if (b = false) { // boolean assignment & usage on one statement 
    System.out.println("true"); 
}else { 
    System.out.println("false"); 
} 

請盡情使用我的變量來說明爲什麼會出現此消息?
注:如果條件是b==false消息將不會顯示

+2

'b = false'是一個賦值,並且之後不使用'b':您將從'if(false)'獲得相同的行爲。你大概是指'b == false',或'!b'。 –

+0

您只能分配給變量。你永遠不會讀它。在if語句中,有效性沒有被測試該變量。正在測試該賦值語句的有效性。 –

回答

5

分配假值到我的布爾變量b並使用它。如果條件

的第一部分是正確的:你將值分配給b。第二部分不是:你永遠不會在那裏使用b。您使用作業的結果,即值false,與b無關。

這將被分配,然後用b

b = false; 
if (b) { 

但這:

if (b = false) 

僅僅是一個分配給b,然後使用值false

所以錯誤是正確的:b被分配一個值,並且它的值永遠不會被使用。