我在讀這post我想知道爲什麼會有人在意測試第二個條件,如果第一個是假的有什麼例子:將在if語句是有用的比&&
如:
boolean a =false;
if(a && b) //do soemthing
爲什麼要測試b是否爲假?
我在讀這post我想知道爲什麼會有人在意測試第二個條件,如果第一個是假的有什麼例子:將在if語句是有用的比&&
如:
boolean a =false;
if(a && b) //do soemthing
爲什麼要測試b是否爲假?
這可能是有道理的,例如,如果你有一個函數可以執行你想要被解僱的東西,不管第一個值是什麼。
if(a & _checkForB())
我能想到的唯一情況就是第二個評估有一些令人滿意的副作用。
我不知道這是否是實際使用,但有時你必須代碼雜技如
string s;
if((s = reader.read()))
{
doStuff
}
,我想你可以使用&
,如果你在你的條件確實有許多東西東東。
爲什麼要測試b是否爲假?
我猜你的意思是:
爲什麼你會測試B,如果是假的?
E.g.如果b有副作用。儘管在這種情況下你可能有一個設計問題。
實際上,「&」不適用於布爾值,除非可能是「& =」。
單個&
是一個按位運算符,所以這就是您使用它的原因。例如,如果你想檢查是否設置了一位:
unsigned int bit = 4;
if (bit & value) {
//third lowest bit is set
}
這在C庫函數中發生了很多。如果您節省內存並使用單獨的位而不是單獨的變量,這非常有用。
編輯:我誤讀了一下帖子。我現在看到你正在談論的背景。所以只有在b有副作用的情況下才能與其他人一致。
實際上是唯一正確的答案,+1 – BigMike 2013-04-04 15:16:08
'&'是按位AND,'&'和'&&' – BigMike 2013-04-04 15:15:02