Руководство для начинающих по логическим и реляционным операторам в Java

Операторы – это символы, используемые для выполнения операций со значениями, переменными или операторами. Выражения, над которыми они выполняют эти действия, называются операндами. Операции возвращают логический результат (истина или ложь) для операторов отношения, равенства и логических операторов.

Количество операндов, которые принимает оператор, определяет его тип. Оператор, принимающий один операнд, называется «унарным». Оператор, который принимает два операнда, называется «двоичным».

Прочтите, чтобы узнать, как можно использовать логические и реляционные операторы в Java. Более того, большинство языков программирования используют одни и те же операторы, поэтому вы можете применить эти знания в другом месте.

Логические операторы

Они используются для построения логических операторов при программировании. В Java есть шесть логических операторов. В таблице ниже они обобщены.

Оператор Имя Тип
| Булево логическое ИЛИ Двоичный
& Булево логическое И Двоичный
^ Булево логическое исключающее ИЛИ Двоичный
|| Условное ИЛИ Двоичный
&& Условное И Двоичный
! Логическое НЕ Унарный

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

Логическое логическое включающее ИЛИ (|)

Логическое ИЛИ проверяет истинность обоих операндов перед вычислением выражения.

 if ( dob < 2005 | height <= 5){
money++;
}

Приведенный выше пример принесет кому-то больше денег, если его дата рождения (dob) меньше 2005 года или если его рост меньше или равен 5 футам.

Логическое логическое И (&)

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

Связанный: Как проверить строки с помощью логических методов в Python

Булево логическое исключающее ИЛИ (^)

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

выражение1 выражение2 выражение1 ^ выражение2
ложный ложный ложный
ложный правда правда
правда ложный правда
правда правда ложный

Логическое условное И (&&)

Этот оператор аналогичен логическому И. Разница в том, что он сначала проверяет, выполняется ли условие слева, прежде чем перейти к проверке того, что находится справа.

Если левая часть оказывается ложной, выполнение немедленно прекращается. В противном случае оценка правой части будет продолжена. Эта функция известна как оценка короткого замыкания.

См. Приведенную ниже таблицу истинности, чтобы обосновать свое понимание этого оператора.

выражение1 выражение2 выражение1 && выражение2
ложный ложный ложный
ложный правда ложный
правда ложный ложный
правда правда правда

Условное ИЛИ (||)

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

Этот оператор похож на логическое ИЛИ. Он также проверяет, выполняется ли одно или оба условия перед выполнением определенного кода.

Подобно условному И, логическое ИЛИ также использует оценку короткого замыкания. Сначала он проверяет, истинен ли операнд слева, прежде чем оценивать операнд справа.

Связанный: Что такое конструктор в Java и как его использовать?

Если условие слева оказывается истинным, то нет необходимости проверять то, что находится справа. В противном случае оценка справа будет продолжена.

Логическое НЕ (!)

Этот оператор используется для отмены условия. Он просто меняет смысл того, над чем работает.

 if(!(x>5)){
// statements
}

Вышеупомянутый оператор означает, что если «x больше 5» НЕ истинно, выполните инструкции внутри if .

Обратите внимание на использование круглых скобок в выражении (x> 5). Если вы не включите эти скобки при написании программы, вы получите ошибку времени компиляции. Причина в том, что ! – унарный оператор, действующий на условие. Без скобок компилятор интерпретировал бы его как оператор, действующий на x, а не x> 5.

Включение скобок не только для того, чтобы компилятор мог правильно интерпретировать выражение. Они также могут быть использованы программистом для лучшего понимания более сложных выражений. Посмотрите на пример ниже:

 age >= 7 && height < 5

Некоторым людям может быть трудно придерживаться этой логики. Поэтому некоторые программисты предпочитают добавлять лишние круглые скобки для удобства чтения:

 (age >= 7) && (height < 5)

Операторы отношения

Эти операторы используются для сравнения простых отношений между операндами.

Оператор Имя
> Больше чем
< Меньше, чем
> = Больше или равно
<= Меньше или равно

Операторы отношения довольно легко понять, потому что все они имеют то же значение, что и обычные алгебраические операторы, с которыми вы уже знакомы. То есть, > и < имеют то же значение, которое вы уже знаете, что и значение, указанное в таблице выше.

 if( x <= 7 ){
x++;
}

Вышеупомянутый оператор if проверяет, меньше ли x или равно 7. Если оно истинно, то выполняются операторы внутри скобок, в противном случае – нет.

Теперь самое время упомянуть операторы равенства. Их всего два (равно, == и! =, Не равно). Как следует из названия, они используются для проверки равенства между двумя операндами.

Связанный: Как создавать и выполнять операции с массивами в Java

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

Оператор присваивания (=) присваивает значение переменной, а оператор равенства (==) проверяет равенство. См. Пример ниже, чтобы понять разницу:

 if(x=5){
// statements
}

Приведенный выше код всегда будет выполняться независимо от того, действительно ли x равно 5. Между тем, приведенный ниже код будет выполняться только в том случае, если x равен 5. Поэтому важно не путать их.

 if(x==5){
// statements
}

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

Операторы отношения также имеют такой же уровень приоритета. Выполнение этих операторов начинается слева направо.

Дополнительные соображения по операторам Java

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

Отсутствие / наличие этого места не должно вас беспокоить. Компилятор проигнорирует это. Следовательно, следующие выражения означают одно и то же:

 Y>=7 // no whitespace
Y >= 7 // with whitespace

Операторы отношения обычно используются для выражения простых условий. Чтобы объединить простые условия в более сложные, вам придется использовать логические операторы. Логические операторы могут проверять несколько условий, в отличие от операторов отношения, которые проверяют только одно условие.

Также важно отметить, что логические операторы (|, &, ^) могут быть побитовыми операторами, если у них есть целые операнды. При использовании в качестве побитовых операторов они будут работать с битами своих операндов.

Обладая этими знаниями операторов, вы должны готовиться к изучению классов Java.