2015-06-18 2 views
0

Каковы плюсы и минусы двух следующих обозначений?Плюсы и минусы: (a == 0) vs (0 == a)

if (a == 0) ... 

и

if (0 == a) ... 

Первый из них является более читаемым. А как насчет второго?

+1

[Более читаемым второй есть.] (Http://blog.codinghorror.com/ content/images/uploads/2012/07/6a0120a85dcdae970b0176169611b8970c-800wi.png) –

+3

Второй также известен как условие Йоды, см. [В чем разница между if (NULL == pointer) vs if (указатель == NULL)? ] (http://stackoverflow.com/q/22106713/1708801), как я уже отмечал в своем ответе на современный компилятор, это больше не нужно. –

ответ

3

Есть действительно только две вещи в игре здесь:

Первый является читаемость, что само explanitory.

Во-вторых, предотвратить возможные ошибки, в вашем примере, это предотвращает случайное делает

if (a = 0) 

Некоторые компиляторы предупредит вас, что вы используете неявную truthiness возвращаемого значения уступки, но большая часть время это опечатка. Если изменить эту

if (0 = a) 

он не будет даже компиляции, поэтому вынужденное предотвращение ошибки

Смежные вопросы