這只是出於好奇,我問...如果(R值= =左值)
當使用「IF」,將是格式「的代碼,我看到任何地方,99%,如果(R值= = LValue)...「。例如:
If (variableABC == "Hello World") ...
還有其他的例子,我看到對面:
If ("Hello World" == variableABC)
任何人都知道這是如何開始以及爲什麼它做什麼?
這只是出於好奇,我問...如果(R值= =左值)
當使用「IF」,將是格式「的代碼,我看到任何地方,99%,如果(R值= = LValue)...「。例如:
If (variableABC == "Hello World") ...
還有其他的例子,我看到對面:
If ("Hello World" == variableABC)
任何人都知道這是如何開始以及爲什麼它做什麼?
正是因爲這個錯誤的C和C++實現:
if (variableABC = "Hello World") ...
^
(Watch here)
這樣,我們有一個編譯錯誤:
if ("Hello World" = variableABC)
^
(Watch here)
例如,C#和Java語言不需要這種招。
令人驚歎:在我被允許之前爲了標記答案,已經有3個答案。 – KurtisLininger 2012-04-20 19:26:56
後者是爲了防止意外的任務,如果你錯誤地使用賦值運算符=
,而不是平等的經營者==
'
一些語言不允許在if條件的分配,其中案件或是好的。
在if條件下接受任務的語言中,我總是比較喜歡用後一種情況。
這樣做是因爲開發人員經常寫錯=而不是==的錯誤。在C++中,整數可以看作是布爾值,在編譯時你沒有錯誤。
由於這裏發生的是平等測試,因此如果'a ==「b」'then「」b「== a',哪一個值在'=='也必須是真實的。我想象第一種情況是爲了防止意外時使用'='而不是'=='來防止賦值。 – 2012-04-20 19:17:43
這些表達式被稱爲「尤達表達式」,參見http://wiert.me/2010/05/25/yoda-conditions-from-stackoverflow-new-programming-jargon-you-coined/ – 2012-04-20 19:32:18