可能重複:
Is there a difference between i==0 and 0==i?效率?這些代碼有什麼區別?
什麼是下面的編碼風格的好處是它們之間有什麼區別嗎?
int i;
// more code
if (i == 0) {...}
VS
if (0 == i) {...}
感謝
可能重複:
Is there a difference between i==0 and 0==i?效率?這些代碼有什麼區別?
什麼是下面的編碼風格的好處是它們之間有什麼區別嗎?
int i;
// more code
if (i == 0) {...}
VS
if (0 == i) {...}
感謝
沒有區別,挑一個,並堅持下去的一致性。該(value == variable)
是從舊的語言遺物,你可能會不小心在if (a = 0)
分配一個值,而不是(a == 0)
他們都將變成(有效),在同一臺機器指令給一個變量,所以不會有任何性能差異不大
在Java中的if語句中不可能分配一個值? – OmnipotentEntity
@OmnipotentEntity該問題也被標記爲'c' – JRaymond
因此它是!在這種情況下,這個答案是錯誤的,特別是這個部分:''是舊語言的遺留物,你可能會意外地將一個值賦值給if(a = 0)中的變量,而不是(a == 0)' – OmnipotentEntity
沒有什麼區別。
我一直髮現後者的例子可讀性較差,我很少看到它,但有些人似乎喜歡它。
有效率無差異,但這種風格是優選的可讀性:
if (i == 0) {...}
另一個版本,if (0 == i) {...}
是Yoda condition的一個例子,它被認爲是一個不好的編程習慣。從鏈接引用:
「Yoda Conditions」 - 使用if(常量==變量)而不是if(變量==常量),如if(4 == foo)。因爲這就像是說「如果藍色是天空」或者「如果男人身材高大」。
一個易讀..另一種是無.. – Lipis
沒有,第二個風格被稱爲「尤達條件。」 – birryree
比較是這樣簡單的比較。 –