Приведи пример условного оператора `if-else` в Java.

Ответ

Условный оператор if-else выполняет разные блоки кода в зависимости от истинности логического выражения.

Базовый пример:

int age = 20;

if (age >= 18) {
    System.out.println("Доступ разрешен.");
    userService.grantAccess(userId);
} else {
    System.out.println("Доступ запрещен.");
    throw new AccessDeniedException("User is underage.");
}

Цепочка условий else if:

int testScore = 85;
char grade;

if (testScore >= 90) {
    grade = 'A';
} else if (testScore >= 80) { // Проверяется, только если первое условие false
    grade = 'B';
} else if (testScore >= 70) {
    grade = 'C';
} else {
    grade = 'F';
}
System.out.println("Оценка: " + grade); // Выведет 'B'

Сокращенная форма (без else):

boolean isDataValid = validate(inputData);
if (isDataValid) {
    processData(inputData); // Блок else может быть опущен, если действие требуется только при true
}
// Код выполняется здесь в любом случае

Тернарный условный оператор (сокращение для простых случаев):

// Синтаксис: условие ? выражение_если_true : выражение_если_false
int max = (a > b) ? a : b;
String status = (connection.isActive()) ? "ONLINE" : "OFFLINE";

// Эквивалентно:
int max;
if (a > b) {
    max = a;
} else {
    max = b;
}

Важно: if-else — это оператор потока управления, а тернарный оператор (?:) — это оператор, возвращающий значение.

Ответ 18+ 🔞

А, ну это же классика, блядь! Условный оператор if-else — это как на развилке стоять: направо пойдёшь — коня потеряешь, налево пойдёшь — в жопу получишь, а прямо пойдёшь — нихуя не изменится. Всё зависит от того, правда перед тобой или ложь, ёпта.

Смотри, как это просто, блядь:

int age = 20;

if (age >= 18) {
    System.out.println("Доступ разрешен.");
    userService.grantAccess(userId);
} else {
    System.out.println("Доступ запрещен.");
    throw new AccessDeniedException("User is underage.");
}

Переводим на русский: если возраст позволяет, то входи, герой, получай доступ. А если нет — иди нахуй, мелкий, с исключением в зубах. Всё честно.

А бывает, что развилок — овердохуища, и надо проверить кучу всего. Тут на помощь приходит else if, этакая лестница условий.

int testScore = 85;
char grade;

if (testScore >= 90) {
    grade = 'A';
} else if (testScore >= 80) { // Сюда зайдём, только если сверху провалились
    grade = 'B';
} else if (testScore >= 70) {
    grade = 'C';
} else {
    grade = 'F';
}
System.out.println("Оценка: " + grade); // Выведет 'B'

Работает как сито, блядь: не просеялся через первое условие — летишь проверяться во второе, и так далее, пока не попадёшь в else, который как помойка — сюда сгребается всё, что никуда не подошло.

Иногда else вообще не нужен, если тебе похуй на ложь. Сделал проверку — и пошёл дальше.

boolean isDataValid = validate(inputData);
if (isDataValid) {
    processData(inputData); // Обработаем, только если всё ок
}
// А тут код выполнится в любом случае, даже если данные — полная мудата

Ну и король лаконичности — тернарный оператор. Для тех, кому впадлу писать четыре строки if-else, когда можно в одну впихнуть.

// Синтаксис: условие ? выражение_если_true : выражение_если_false
int max = (a > b) ? a : b;
String status = (connection.isActive()) ? "ONLINE" : "OFFLINE";

// Это то же самое, что:
int max;
if (a > b) {
    max = a;
} else {
    max = b;
}

Только не обманывай себя, хитрая жопа: if-else — это команда, что делать, а тернарник — это выражение, которое возвращает значение. Как быстренько выбрать одно из двух — он мастер. Но если тебе нужно не просто значение присвоить, а, например, пол-программы выполнить или исключение выкинуть — пиши нормальный if, а то потом сам от себя охуеешь, когда эту конструкцию читать будешь.