Какие способы проверки условий существуют в 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";

Ответ 18+ 🔞

Давай разберём эту хуйню про условную логику в Java, а то народ путается, как последний распиздяй. Слушай сюда, я тебе по полочкам разложу, чтобы даже кот, который на клавиатуре сидит, понял.

1. Операторы ветвления — классика, мать её.

  • if-else if-else: Старый добрый дедовский способ, хули тут думать.
    if (score >= 90) {
        grade = 'A';
    } else if (score >= 80) {
        grade = 'B';
    } else {
        grade = 'C'; // А тут уже пошла жопа, иди учись, балбес
    }
  • Тернарный оператор ? :: Для быстрых решений, когда писать целый if лень, как последней твари.
    String status = (balance > 0) ? "Active" : "Inactive"; // Или богатый, или нищий, третьего не ебут
  • switch: Особенно с Java 14, где можно уже без этих break, которые всех ебали. Красота, блядь.
    switch (day) {
        case MONDAY, FRIDAY -> System.out.println("Короткий день, можно бухать"); // Ура
        case TUESDAY, THURSDAY -> System.out.println("День совещаний, пиздец"); // Тоска
        default -> System.out.println("Обычный день, нихуя не происходит"); // Скука смертная
    }

2. Логические операторы (&&, ||, !). Это когда нужно соединить условия, типа «если зарплата пришла И сегодня пятница, то можно в загул». Или «если начальник уехал ИЛИ он в запое, то можно нихуя не делать». Просто, но охуенно мощно.

3. Современные API (Java 8+). Тут уже для продвинутых, кто не хочет выглядеть как мамонт.

  • Optional: Чтобы не ловить NullPointerException на каждом шагу, как идиот.
    optionalValue.ifPresent(v -> process(v)); // Если значение есть — обрабатываем, нет — идём нахуй
    String result = optionalValue.orElse("default"); // А если пусто, то вот тебе дефолт, довольствуйся
  • Stream API: Фильтрация коллекций без этих ваших циклов for, которые глаза ебут.
    List<Integer> positives = numbers.stream()
                                     .filter(n -> n > 0) // Отсеиваем всю хуйню (отрицательные числа)
                                     .collect(Collectors.toList()); // Собираем в кучку

4. Ключевое слово assert. Это для параноиков и тестировщиков. Проверяешь, что всё идёт по плану, а если нет — получаешь пизды.

    assert count > 0 : "Count must be positive, а у тебя хуйня какая-то!"; // Без флага `-ea` это просто слова на ветер

Вот и вся магия, ёпта. Выбирай инструмент по ситуации, а не тычь во всё подряд, как слон в посудной лавке.