Java, если условие == ложь против! оператор [закрыт]

1

когда я смотрел код моего коллеги, я натолкнулся ниже кода, что заставляет меня думать

if((a == d && b < c) == false){
}

но я видел, как люди используют ! оператора чаще, вместо проверки на логическое значение == false

я не вижу ничего плохого в коде, но просто хочу знать, что лучше делать. я искал Google за ответ, но я не получил никакой полезной информации.

  • 5
    Вероятно, это просто вопрос личных предпочтений. Я лично использовал бы ! поскольку я нахожу это намного более читабельным.
  • 0
    Это личное понимание, так как это говорит, что это и это НЕ и показывают ясное значение, показывает ложное
Теги:
if-statement
java-7

3 ответа

3

В самом деле, иногда вы видите == boolean.

BAD STYLE                 GOOD STYLE
c == false      <=>       !c
c != true

c == true       <=>       c
c != false

Это может быть из-за ! не будучи очень узнаваемым (not ключевое слово будет более четким). Но в целом это кажется проблемой восприятия: мышление "c ложно", добавляя к логическим значениям true и false специальное (значение).

Это плохой стиль, так как он показывает отсутствие умственного отрицательного прыжка, что может быть признаком того, что вы не будьте добры к логической логике. Как в:

if ((a == d && b < c) == false) {
if (!(a == d && b < c)) {
if (a != d || b >= c) {

PS

Дискуссионный, хотя c == true объективно абсолютный избыточен, а c != false False reeks двух отрицаний.

0

Нет разницы в производительности, вы можете использовать то, что, по вашему мнению, лучше. В основном == false или == true используется программистами C. Я лично использую!.

  • 1
    У большинства программистов, которых я видел, используя эту конструкцию, никогда не было опыта работы с Си. Кроме того, программисты на C будут использовать if (false == var), поскольку в C компилятор будет молча принимать присваивание в операторе if, например if (var = false), присваивая значение вместо сравнения. Если сначала поставить константу, компилятор будет жаловаться, потому что вы не можете присвоить константу.
0

В чем смысл избыточного использования boolean. ?

Итак, чтобы проверить true состояние, мы можем использовать

 if(a == d && b < c){
 }

Теперь вы понимаете, что мы можем использовать

 if(!(a == d && b < c)){
 }

для не true условия.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню