Возможный дубликат: [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], так как считаю, что он более читабелен. Что вы, ребята, думаете?
Число 2 вместе с "foo" имеет описательное имя, чтобы код хорошо читался:
if (!hasPurple)
...
Я нахожу №2 более читаемым. Я думаю, что каждый разработчик Java (я разработчик C#) знает, что! означает. I
Хотя, возможно, это и не главное, я предпочитаю помещать свой «истинный» блок в качестве утверждения. Если условие обычно будет ложным, то я называю свою переменную для представления
if (notFoo)
// do something when
else
// do something else
Я считаю хорошей идеей избегать таких вещей, как
if (foo == true){}
потому что иногда вы можете написать
if (foo = true){}
как опечатку. Часто эту ошибку легко обнаружить, но кажется, что она хорошо подходит для этой быстрой ошибки.
Я выбираю 2, потому что как программист даже 2 читается.
Представьте, что у вас есть сотни таких проверок, всегда ли вы проверяете ложь.
Нет
Если вы единственный, кто будет поддерживать ваш код, вы можете использовать любой стиль, который вам нравится.
Сказав, что !foo предпочитают большинство разработчиков, которых я знаю.
Это вопрос личного мнения. Я предпочитаю номер 2, потому что в нем меньше кода для написания, и я думаю, что он так же удобочитаем.
При использовании логической переменной в качестве условия в операторе не сравнивайте ее с истинным значением.
Не ошибка, а плохой стиль. Поскольку это уже логическое значение, просто используйте его.
Почему "!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) {" не дает
ошибка компиляции. Следовательно, избегая "==" для логических значений, которые вы избегаете устанавливать
себя за целую кучу жуков
в результате опечаток.