在原始布爾而言,就是靈長類動物的布爾在if語句
if(someBoolean == false){}
和
if(someBoolean = false){}
之間的差異比較,我寫了後者(在Eclipse)期待拋出一個錯誤,但沒有人。
在原始布爾而言,就是靈長類動物的布爾在if語句
if(someBoolean == false){}
和
if(someBoolean = false){}
之間的差異比較,我寫了後者(在Eclipse)期待拋出一個錯誤,但沒有人。
==
用於比較
=
用於assingnment。
因此,在您的第一種情況下,您正在比較值和第二種情況下分配。這兩條語句都會成功編譯和執行。
但是,如果尋找到使用的if
語句中,那麼你可以簡單地做作爲一種有效的方法:
if(someBoolean) //for checking true
和
if(!someBoolean) //for checking false
我假設它將some賦值給someBoolean,但由於在if語句中不能分配基本整數,所以感到困惑(回顧性地,我應該已經意識到布爾可以是獨立的爭論)。後續行動:你能想到這種情況下,這是必要的,或者它是一個多餘的功能? – user3367285
someBoolean = false
將false值賦予該布爾值,而不是實際比較它是否爲false。
=分配
==比較
if(someBoolean=false)
將設置爲false,以someBoolean
然後返回someBoolean,然後if語句判斷someBoolean值,所以它會很好編譯。
但這樣的代碼不能編譯:
int val = 2;
if(val = 3){
}
它會編譯錯誤:
InCompatible Types:Required:boolean,Found
,因爲它的返回值類型爲int,不能被更改爲布爾類型的if語句需要。
someBoolean == false
被比較,它返回一個布爾值 someBoolean = false
正在分配,返回布爾值以及
if(someB oolean = false){}
上述語句首先將該值賦值給布爾變量,然後進行條件檢查。聲明中沒有錯誤。
如果(someBoolean == FALSE){}
這種說法只會做條件檢查。
在後一種情況下,將值分配給布爾varibale,而在前一種情況下,將比較值。當你使用你不需要使用'=='運算符。你可以直接使用'if(someBoolean){}'或'if(!someBoolean){}'來表示真或假的情況。 –