2017-03-31 53 views
0

我意識到這是一個非常簡單和基本的問題。我知道在大多數編程語言中,無論如何我都熟悉所有這些語言,您可以按任意順序放置條件。但是,我想知道理性會把它們「倒退」。正確寫入IF條件的順序?

爲了解釋,這裏有兩個例子:

if (x === 10) {} 
if (10 === x) {} 

我一直在做它的第一種方式,和幾乎一切我始終認爲,做它的第一種方式。但是,每隔一段時間,我都會看到它是第二種寫法。除此之外,也許編碼器是誦讀困難或什麼的,我想知道是否有任何特殊原因的第二個(我稱之爲「倒退」)命令?

我問的主要原因是,我從來沒有看到任何人使用第二種風格,做得不好的代碼。它總是優秀的代碼,這讓我想知道是否有某些我根本不知道的東西。

在此先感謝!

+1

尤達條件蠻好的,一般沒有什麼區別 – adeneo

+1

從字面上有沒有區別,所以只是做無論你喜歡。就我個人而言(我認爲很多其他人)會更喜歡第一個,因爲在口頭語言中「如果x等於10」,即使它們意味着相同的東西,它也比「如果10等於x」更自然 - 聽起來更自然。 –

+6

我能想到的唯一原因是如果你搞砸了,你可能會得到錯誤。做'$ x = 10'總會是真的,但是'10 = $ x'不會因爲你不能分配給一個數字。所以如果你犯了一個錯誤(缺少一些=),它會被注意到。 – Qirel

回答

2

這稱爲尤達語法或Yoda條件。這主要是一個風格問題;然而,它的支持者使用它作爲避免條件語句內的賦值操作的一種方式。例如:在一個if語句中,如果有人偶然使用一個等號而不是兩個,那麼這可能是一個錯誤,而且在調試時可能很容易被忽略。

在這種情況下,x的值指定爲7.

if(7 = x)... 

在這種情況下它是一個編譯錯誤。

我這裏還有更多的細節:https://en.wikipedia.org/wiki/Yoda_conditions

+0

你怎麼能這樣說?你沒有測試部署你的代碼? –

+1

@harishsharma這僅僅是爲什麼有人可能希望使用Yoda語法的一個例子。我本人不是粉絲,但我確實明白爲什麼有人可能會希望使用它。 –

+0

令我困惑的是,能夠以這種方式編寫代碼,我不是。不過,謝謝大家 - 我不知道它有一個實際的術語。所以岩石:) – Carnix