Условия (if)
Во многих задачах нужно действовать по-разному в зависимости от условия:
если число положительное – написать одно, если отрицательное – другое, если ноль – третье.
Для этого в Java есть оператор if. Он проверяет логическое выражение (да/нет) и в зависимости от результата выполняет нужный блок кода.
int x = in.nextInt();
if (x > 0) {
System.out.println("Положительное");
} else if (x < 0) {
System.out.println("Отрицательное");
} else {
System.out.println("Ноль");
}
Краткая сводка
Условие в Java всегда основано на значении типа boolean — true или false.
Основные формы записи:
Чаще всего условия строятся из сравнений (==, !=, <, >, <=, >=) и логических операций (&&, ||, !).
Простое условие: if
Самый простой вариант — выполнить блок кода только когда условие истинно.
int age = in.nextInt();
if (age >= 18) {
System.out.println("Взрослый");
}
System.out.println("Конец программы");
Если age >= 18 истинно, будет выведено два сообщения.
Если ложно — только "Конец программы".
Два варианта: if … else
Когда нужно выбрать между двумя вариантами, используется if … else:
int x = in.nextInt();
if (x % 2 == 0) {
System.out.println("Чётное");
} else {
System.out.println("Нечётное");
}
Здесь всегда выполняется ровно один из блоков: либо после if, либо после else.
Несколько вариантов: цепочка if … else if … else
Если вариантов больше двух, можно сделать цепочку условий:
int x = in.nextInt();
if (x > 0) {
System.out.println("Положительное");
} else if (x < 0) {
System.out.println("Отрицательное");
} else {
System.out.println("Ноль");
}
Блоки проверяются сверху вниз:
- сначала проверяется первое условие;
- если оно ложно, проверяется следующее
else if; - если все условия ложны, выполняется блок
else(если он есть).
Диапазоны и составные условия
Частая задача — проверить, попадает ли число в некоторый диапазон.
int x = in.nextInt();
if (x >= 1 && x <= 100) {
System.out.println("В диапазоне 1..100");
} else {
System.out.println("Вне диапазона");
}
Здесь используется логическое И (&&): оба условия x >= 1 и x <= 100 должны быть истинны.
Другой пример — один из нескольких вариантов:
int month = in.nextInt();
if (month == 12 || month == 1 || month == 2) {
System.out.println("Зима");
}
Здесь логическое ИЛИ (||): достаточно, чтобы истинным было хотя бы одно из сравнений.
Вложенные условия
Иногда удобно писать условия внутри условий:
int x = in.nextInt();
if (x >= 0) {
if (x % 2 == 0) {
System.out.println("Неотрицательное чётное");
} else {
System.out.println("Неотрицательное нечётное");
}
} else {
System.out.println("Отрицательное");
}
Такие конструкции нужно писать аккуратно и не усложнять без необходимости.
Часто вложенные if можно заменить на одну цепочку if … else if … else.
Типичные шаблоны
Максимум из двух чисел
int a = in.nextInt();
int b = in.nextInt();
int max;
if (a >= b) {
max = a;
} else {
max = b;
}
System.out.println(max);
Классический «знак числа»
int x = in.nextInt();
if (x > 0) {
System.out.println(1);
} else if (x < 0) {
System.out.println(-1);
} else {
System.out.println(0);
}
Проверка корректности значения
int score = in.nextInt();
if (score < 0 || score > 100) {
System.out.println("Некорректное значение");
} else {
System.out.println("ОК");
}
Блок-схемы

Что нужно запомнить
Условие в if — это логическое выражение (boolean), которое даёт true или false.
Основные формы: одиночный if, пара if … else и цепочка if … else if … else.
Сложные условия удобно строить из сравнений и логических операций: диапазоны — через &&, варианты «или то, или это» — через ||.