# Yoda condition
## English
### Etymology

An allusion to the somewhat grammatically reversed speech style of Yoda, a character in the Star Wars franchise—for example, “Truly wonderful, the mind of a child is.” The term was possibly coined by Félix Cloutier (username “zneak”) in 2010, based on Yoda notation which is claimed to have been coined by Thomas M. Tuerke and published online in 2006.

### Pronunciation

* (Received Pronunciation) IPA: /ˌjəʊdə kənˈdɪʃn̩/
* (General American) IPA: /ˌjəʊdə kənˈdɪʃən/
* Audio (General American):(file)
* Rhymes: -ɪʃən
* Hyphenation: Yo‧da con‧dit‧ion

### Noun

Yoda condition (plural Yoda conditions)
* (programming, informal) A logical condition with the usual order of operands reversed for various reasons, such as avoiding accidental misuse of = (assignment) instead of == (equality), a mistake that is harder to spot when using the normal order of operands. [from early 21st c.]
** 2013, Adam Onishi, “Getting Started”, in Pro WordPress Theme Development, Berkeley, Calif.: Apress, Springer Nature, →ISBN, page 14:A great convention to stick to, the Yoda condition requires you to keep the comparison variable on the right side of the conditional statement.
** 2014, Kirk Hazen, “The Winding Paths of Language in Education”, in An Introduction to Language (Linguistics in the World), Malden, Mass.: Wiley-Blackwell, →ISBN, page 331:A computer programmer is trying to explain a recent problem to a journalist friend, and she says, "This jimmy had put in Yoda conditions and had been refactoring my previous work so that in the end it was just hooker code." The journalist friend looks baffled.
** 2015, Jim Manico, August Detlefsen, “Access Control”, in Iron-clad Java: Building Secure Web Applications (Oracle Press), New York, N.Y.: McGraw-Hill Education, →ISBN, page 66:// what happens if the debug parameter is removed // from the request and becomes a null? // should really be using a Yoda Condition here ;)
** 2015 February, William Sherif, “If, Else, and Switch”, in Learning C++ by Creating Games with UE4: Learn C++ Programming with a Fun, Real-world Application that Allows You to Create Your Own Games!, Birmingham, West Midlands: Packt Publishing, →ISBN, page 48:Writing if(isHungry = true) by accident will set isHungry to true every time the if statement is hit! To avoid this possibility, we can just write if(isHungry). Alternatively, some (wise) people use what are called Yoda conditions to check an if statement: if(true == isHungry). The reason we write the if statement in this way is that, if we accidentally write if(true = isHungry), this will generate a compiler error, catching the mistake.
** 2020, Amy Noelle Parks, “Evie”, in The Quantum Weirdness of the Almost-kiss, New York, N.Y.: Amulet Books, Abrams Books, →ISBN:Leo grimaces at Caleb. "I never asked—how did you figure it out?" / "Yoda conditions. You may as well have signed your name." At my blank look, Caleb says, "Your boyfriend writes his code backwards."
** 2022, Paul Deitel, Harvey Deitel, C++20 for Programmers: An Objects-natural Approach (Deitel Developer Series)‎, Boston, Mass.: Pearson Prentice Hall, →ISBN:Programmers normally write conditions such as x == 7 with the variable name (an lvalue) on the left and the literal (an rvalue) on the right. Placing the literal on the left, as in 7 == x (which is syntactically correct and is sometimes called a "Yoda condition"), enables the compiler to issue an error if you accidentally replace the == operator with =. The compiler treats this as a compilation error because you can't change a literal's value.

#### Related terms

* Yoda notation

#### See also

* lvalue, rvalue

### References

* ↑ From Star Wars: Episode II – Attack of the Clones (2002): see “The StarWars.com 10: Best Yoda Quotes”, in Starwars.com‎, San Francisco, Calif.: Lucasfilm, 2013 November 26, archived from the original on 2024-04-03.
* ↑ zneak [pseudonym; Félix Cloutier] (2010 March 12) “Weirdest Occurrence Ever, UIButton @selector Detecting Right Button, Doing Wrong ‘Else_if’?”, in Stack Overflow‎, archived from the original on 2023-08-28: “We should call that comparison style ‘Yoda Conditions’.”
* ↑ Thomas M. Tuerke (2006 July 17) “Terminology”, in Thomas.Tuerke.net‎, archived from the original on 2008-08-20: “Yoda Notation: the reversal of order, in particular in respect to operands of an equality operation in C and C++, […]”; Thomas M. Tuerke (2013 April 17) “Yoda Notation (aka Yoda Condition)—Origin of the Term”, in Thomas.Tuerke.net‎, archived from the original on 2024-01-30

### Further reading

* Yoda conditions on Wikipedia.Wikipedia