2012-05-22 97 views

回答

2

沒有區別,挑一個,並堅持下去的一致性。該(value == variable)是從舊的語言遺物,你可能會不小心在if (a = 0)分配一個值,而不是(a == 0)

他們都將變成(有效),在同一臺機器指令給一個變量,所以不會有任何性能差異不大

+0

在Java中的if語句中不可能分配一個值? – OmnipotentEntity

+0

@OmnipotentEntity該問題也被標記爲'c' – JRaymond

+0

因此它是!在這種情況下,這個答案是錯誤的,特別是這個部分:''是舊語言的遺留物,你可能會意外地將一個值賦值給if(a = 0)中的變量,而不是(a == 0)' – OmnipotentEntity

3

沒有什麼區別。

我一直髮現後者的例子可讀性較差,我很少看到它,但有些人似乎喜歡它。

2

有效率無差異,但這種風格是優選的可讀性:

if (i == 0) {...} 

另一個版本,if (0 == i) {...}Yoda condition的一個例子,它被認爲是一個不好的編程習慣。從鏈接引用:

「Yoda Conditions」 - 使用if(常量==變量)而不是if(變量==常量),如if(4 == foo)。因爲這就像是說「如果藍色是天空」或者「如果男人身材高大」。

enter image description here

+0

爲什麼這是一個不好的做法? – Tom

+0

僅供參考,您的鏈接是已刪除的帖子,對於10k以下的用戶不可見 – JRaymond

+0

@Tom我編輯了我的答案 –