2016-04-20 47 views
-1

我遇到了「!= true」給出與「= false」不同的輸出的情況。我認爲如果不是真的,它會自動失效。任何人都可以請解釋我是如何工作的?謝謝!「!= true」和「= false」之間的區別

+3

你能不能給我們的** **代碼重現您所遇到的情況需要? –

+4

對於布爾值,使用'=='和'!='是多餘的。您應該使用'if(booleanVariable)'和'if(!booleanVariable)'來代替。 – Radiodef

+0

是的,我從來沒有理解爲什麼人們不得不使用比較運算符來使布爾表達式脫離布爾表達式。 –

回答

12

它給不同的輸出,因爲你比較VS分配混淆

!=意志值與RHS比較和=false做賦值LHS。如果您想檢查是否相等,請使用==運算符。

而且我認爲當你比較不同的風格時,它們並沒有太大的區別,因爲它們都做同樣的工作,除非你有一些奇怪的代碼行。

1

==是比較操作符,=是賦值運算符 !=不等於,和==等於

0

!= true使用比較器。它比較LHS與真實。但= false是一項任務。相當於!= true將是== false==也是比較運算符,用於檢查是否相等,而!=用於檢查不等式。

1

除了其他的答案,

如果事情是不是真的這會是假的自動

也是錯誤的。

(Boolean) null != true爲真,但(Boolean) null == false當然是錯誤的。

0

這是所有關於寫作或檢查值...

看看這個例子...

boolean flag = true; a boolean variable is defined and assig to true 

if (flag!=true) { //you should do instead if(!flag) 
    //this is checking the content of the flag variable 
} 
if (flag=true) { //you should do instad if(flag) 
     //this is writing the content of the flag assigning it to true 
} 
+0

你的第二個條件實際上是一項任務。 – csmckelvey

+0

@takendarkk感謝您的意見,我知道我故意這樣做,因爲它看起來像OP分配,而不是檢查布爾值val –

0

在布爾語句中,如果您使用!=真,如果布爾爲空,操作員將允許它運行任何比較。如果您使用== false,則只有當布爾值當前設置爲false時纔會運行。

0

首先是比較,在後一種情況下,你要分配

相關問題