МОДУЛЬ 3 · УРОК 4
Тернарный оператор
Тернарный оператор — это компактная запись простого if-else. Одна строка вместо пяти. Но, как и всё компактное — нужно знать, когда уместно, а когда нет.
⏱ ~15 минут
🎓 Для начинающих
📌 Модуль 3
📝 Синтаксис и принцип работы
Тернарный оператор имеет вид: условие ? значение1 : значение2. Если условие true — возвращается значение1, иначе — значение2:
public class Ternary {
public static void main(String[] args) {
int age = 25;
// Если-else: 5 строк
String status;
if (age >= 18) {
status = "Взрослый";
} else {
status = "Ребёнок";
}
// Тернарный оператор: 1 строка
String status2 = (age >= 18) ? "Взрослый" : "Ребёнок";
System.out.println(status2); // Взрослый
// Практические примеры
int a = 10, b = 20;
int max = (a > b) ? a : b;
System.out.println("Максимум: " + max); // 20
int number = 7;
String parity = (number % 2 == 0) ? "чётное" : "нечётное";
System.out.println(number + " — " + parity); // 7 — нечётное
}
}
🔗 Вложенные тернарные операторы
Тернарные операторы можно вкладывать, но это быстро становится нечитаемым:
int score = 85;
// Читаемо:
String grade = (score >= 90) ? "A" :
(score >= 80) ? "B" :
(score >= 70) ? "C" :
(score >= 60) ? "D" : "F";
// НЕчитаемо (не делайте так):
String bad = score >= 90 ? "A" : score >= 80 ? "B" : score >= 70 ? "C" : score >= 60 ? "D" : "F";
⚠️ Правило: Не вкладывайте более 2 тернарных операторов. Если логика сложная — используйте if-else. Читаемость важнее компактности.
💡 Когда использовать тернарный оператор
- Простой выбор между двумя значениями:
max = (a > b) ? a : b; - Инициализация переменной условием:
String s = (x > 0) ? "positive" : "non-positive"; - Внутри println:
System.out.println("Число " + n + (n % 2 == 0 ? " чётное" : " нечётное"));
Не используйте тернарный оператор, когда:
- Нужно выполнить действия (не просто выбрать значение)
- Логика включает >2 веток
- Условие сложное и не очевидно с первого взгляда
✅ Итоги урока
- Синтаксис:
условие ? значение1 : значение2 - Заменяет простой if-else для выбора значения
- Не вкладывайте более 2 тернарных операторов
- Не используйте для выполнения действий
- Читаемость важнее компактности
Далее: switch — современный и классический →
Проверяем понимание
3 вопроса