$ sudo teach IT
МОДУЛЬ 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 вопроса

Максимум из трёх чисел

Premium