Лучшая практика: if (foo == false) или if (! Foo) [duplicate]

Возможный дубликат: [1299 Каков предпочтительный способ написания логических выражений в Java

Сегодня Это лучший способ использовать логические переменные в коде Java вместе с операторами if.

boolean foo=true
//1. 

if(foo == false)
    // do something
else
    // do something else

//2.

if(!foo)
    // do something
else
    // do something else

Я поддерживаю [1], так как считаю, что он более читабелен. Что вы, ребята, думаете?

9
задан Community 23 May 2017 в 11:55
поделиться

7 ответов

Число 2 вместе с "foo" имеет описательное имя, чтобы код хорошо читался:

if (!hasPurple) ...

12
ответ дан 4 December 2019 в 09:34
поделиться

Я нахожу №2 более читаемым. Я думаю, что каждый разработчик Java (я разработчик C#) знает, что! означает. I

Хотя, возможно, это и не главное, я предпочитаю помещать свой «истинный» блок в качестве утверждения. Если условие обычно будет ложным, то я называю свою переменную для представления

if (notFoo) 
  // do something when
else
  // do something else
6
ответ дан 4 December 2019 в 09:34
поделиться

Я считаю хорошей идеей избегать таких вещей, как

if (foo == true){}

потому что иногда вы можете написать

if (foo = true){}

как опечатку. Часто эту ошибку легко обнаружить, но кажется, что она хорошо подходит для этой быстрой ошибки.

4
ответ дан 4 December 2019 в 09:34
поделиться

Я выбираю 2, потому что как программист даже 2 читается.

Представьте, что у вас есть сотни таких проверок, всегда ли вы проверяете ложь.

Нет

0
ответ дан 4 December 2019 в 09:34
поделиться

Если вы единственный, кто будет поддерживать ваш код, вы можете использовать любой стиль, который вам нравится.

Сказав, что !foo предпочитают большинство разработчиков, которых я знаю.

0
ответ дан 4 December 2019 в 09:34
поделиться

Это вопрос личного мнения. Я предпочитаю номер 2, потому что в нем меньше кода для написания, и я думаю, что он так же удобочитаем.

0
ответ дан 4 December 2019 в 09:34
поделиться

При использовании логической переменной в качестве условия в операторе не сравнивайте ее с истинным значением.

Не ошибка, а плохой стиль. Поскольку это уже логическое значение, просто используйте его.

Почему "!foo" лучше чем "foo == false". Ссылка на из

  • Краткость: при условии, что вы находитесь в контексте, где логическое значение
    требуется, а "x" является логическим значением, это меньше символов для записи "x", чем "x
    == true", или "!x", чем "x == false".

  • Соглашение: опытные программисты на Java (или C, C++, C# и большинстве других)
    языки) скорее ожидайте увидеть "x"
    чем "x == true", и скорее "!x"
    чем «х == ложь».

  • Надежность: в Java условные операторы и операторы цикла требуют a
    логическое выражение в
    состояние. Если "y" не логическое значение,
    то опечатка вида "if(y=foo) {" выдаст ошибку компиляции в
    Ява. Но если "y" логическое значение, то
    "if (y = foo) {" не дает
    ошибка компиляции. Следовательно, избегая "==" для логических значений, которые вы избегаете устанавливать
    себя за целую кучу жуков
    в результате опечаток.

0
ответ дан 4 December 2019 в 09:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: