2017-08-02 92 views
-8

我已經在下面的代碼中寫了下面的代碼。因爲我將布爾值賦值爲false,然後在if語句中將b變量賦值爲false,因此條件爲true,並且輸出應爲「hello」。但是,輸出將是「嗨」。任何人都可以請賜教嗎?帶有布爾條件的if語句中的代碼

boolean b= false; 

if (b=false){ 
    System.out.println("hello");   
} 
else { 
    System.out.println("hi"); 
} 
+0

在'if(b = false)','='是賦值運算符 – khelwood

+0

歡迎使用StackOverflow。請在發佈任何內容前閱讀[如何提問](https://stackoverflow.com/help/how-to-ask)部分。 –

回答

0

嘗試(b == false)(!b)

當你b=false,你在執行以下行要使用==檢查平等

-2

要檢查對賦值操作符:

if(b=false) 

false被分配給b,然後b的值被用來評估if con這將成爲

if(false) 

因此程序的控制權將轉到else塊。

你可以做這樣的事情:

if(!(b=false)) { 
    System.out.println("hello"); 
} 
else { 
    System.out.println("hi"); 
} 
1

你的問題是在你

b=false 

=是賦值運算符。你需要的是==哪個比較。

如果要檢查布爾值是否爲false,則還可以使用!b,這相當於b== false