JavaRush/Java блог/Архив info.javarush/Операторы сравнения и логические операторы. Ветвление в п...
articles
15 уровень

Операторы сравнения и логические операторы. Ветвление в программе. Условный оператор

Статья из группы Архив info.javarush
участников

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

Существует несколько бинарных логических операторов и один унарный. В качестве аргументов для всех этих операторов выступают логические литералы (константы), логические переменные и выражения, имеющие логическое значение.
Операторы сравнения и логические операторы. Ветвление в программе. Условный оператор - 1
Операторы:
  • ! — «отрицание», унарный оператор, меняет значение на противоположное (инвертирует: ложь превращает в истину, а истину — в ложь).
  • && — логическое «и» («конъюнкция», «пересечение»), бинарная операция, возвращает истинное значение тогда и только тогда, когда оба операнда истины.
  • || — логическое «или» («дизъюнкция», «объединение»), бинарная операция, возвращает истинное значение, когда хотя бы один из операндов истинный.
У логических операторов следующий приоритет: отрицание, конъюнкция, дизъюнкция. Также как и в случае с арифметическими операторами для коррекции приоритета используются круглые скобки. Если одна пара скобок вложена в другую пару скобок, то сначала вычисляется значение во внутренних скобках. Примеры:
boolean a = true;
boolean b;
b = a || true; // b истинно
b = !b; // b ложно
System.out.println(b); // выведет false
a = a || b; // a истинно
boolean c;
c = a && (a||b); //с истинно
System.out.println(c); // выведет true
В Java логический и числовые типы нельзя преобразовывать друг к другу.

Операторы сравнения

Большинство операторов сравнения применимы к числовым значениям. Всё это бинарные операторы, имеющие два числовых аргумента, но возвращающие логическое значение.
  • > — оператор «больше».
  • >= — оператор «больше или равно».
  • < — оператор «меньше».
  • <= — оператор «меньше или равно».
  • != — оператор «не равно».
  • == — оператор эквивалентности (равенства).
Последние два оператора могут применяться не только для числовых значений, но и, например, для логических. Примеры:
boolean m;
m = 5 >= 4; // истина
m = 5 != 5 || false; // ложь
boolean w;
w = m == false; // истина
System.out.println(w); // выведет true
Очень важно не путать оператор эквивалентности с операцией присваивания. В выражениях, где встречаются операторы разных типов, сначала выполняются арифметические операции, затем операции сравнения, затем логические операции и в последнюю очередь присваивание.

Условный оператор if

Оператор if обеспечивает выполнение или пропуск инструкции в зависимости от указанного логического условия. Если условие истинно, то инструкция выполняется.
if (условие) инструкция;
На месте инструкции может быть как обычная инструкция (одна команда), так и составная инструкция (блок содержащий несколько команд, в том числе, другие условные операторы). Примеры (если в качестве значений переменных будет указан нуль, то деление не будет производиться и его результат не станет выводиться на экран):
// Пример 1
int a = 25;
if (a != 0) System.out.println( 100/a );
// Пример 2
int b = 25;
if (b != 0) {
  System.out.println( 100/b );
}
Не смотря на то, что код в первом примере выглядит компактнее, только во втором примере можно было бы выполнить несколько инструкций в случае истинности условия. У оператора if существует формат с дополнительной частью else:
if (условие)
инструкция1;
else
инструкция2;
В случае истинности условия выполняется простая или составная инструкция1, а в случае ложности простая или составная инструкция2. Пример:
int a = 0;
if (a != 0) System.out.println( 100/a );
else System.out.println("На нуль делить нельзя");
Комментарии (5)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Дарья
Уровень 3
20 сентября 2021, 17:33
В Java логический и числовые типы нельзя преобразовывать друг к другу. Друг в друга?
mrserfr
Уровень 33
16 декабря 2015, 21:37
del
itmanager_kz
Уровень 18
16 декабря 2015, 20:24
Где же про «else if»?
Elyna
Уровень 13
20 июня 2018, 14:39
У оператора if существует формат с дополнительной частью else: if (условие) инструкция1; else инструкция2; В случае истинности условия выполняется простая или составная инструкция1, а в случае ложности простая или составная инструкция2. Пример: int a = 0; if (a != 0) System.out.println( 100/a ); else System.out.println("На нуль делить нельзя");
Elyna
Уровень 13
20 июня 2018, 14:40
Условный оператор if Оператор if обеспечивает выполнение или пропуск инструкции в зависимости от указанного логического условия. Если условие истинно, то инструкция выполняется. if (условие) инструкция; На месте инструкции может быть как обычная инструкция (одна команда), так и составная инструкция (блок содержащий несколько команд, в том числе, другие условные операторы). Примеры (если в качестве значений переменных будет указан нуль, то деление не будет производиться и его результат не станет выводиться на экран): // Пример 1 int a = 25; if (a != 0) System.out.println( 100/a ); // Пример 2 int b = 25; if (b != 0) { System.out.println( 100/b ); }