Какие способы проверки условий существуют в Java?

«Какие способы проверки условий существуют в Java?» — вопрос из категории Java Core, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В Java существует несколько основных подходов к условной логике:

1. Операторы ветвления:

  • if-else if-else: Базовый оператор.
    if (score >= 90) {
        grade = 'A';
    } else if (score >= 80) {
        grade = 'B';
    } else {
        grade = 'C';
    }
  • Тернарный оператор ? :: Для простых присваиваний.
    String status = (balance > 0) ? "Active" : "Inactive";
  • switch (в т.ч. switch expressions с Java 14): Для множественного выбора.
    // Традиционный switch
    switch (day) {
        case MONDAY, FRIDAY -> System.out.println("Short day");
        case TUESDAY, THURSDAY -> System.out.println("Meeting day");
        default -> System.out.println("Other day");
    }

2. Логические операторы: Комбинация условий (&&, ||, !).

3. Современные API (Java 8+):

  • Optional: Безопасная проверка на null.
    optionalValue.ifPresent(v -> process(v));
    String result = optionalValue.orElse("default");
  • Stream API: Фильтрация коллекций.
    List<Integer> positives = numbers.stream()
                                     .filter(n -> n > 0)
                                     .collect(Collectors.toList());

4. Ключевое слово assert: Для проверки инвариантов (обычно в тестах, требует флага -ea).

    assert count > 0 : "Count must be positive";