if / else

Обычно код идёт сверху вниз, строка за строкой. if / else даёт первую силу управления потоком — ветвиться, выбрать путь.

«Если условие — иди сюда, иначе — туда». Как развилка на дороге.

возраст ≥ 18 ? да нет пускаем не пускаем
if (age >= 18) {
    System.out.println("пускаем");
} else {
    System.out.println("не пускаем");
}
Копнуть глубже

Тернарный оператор — короткий if для присваивания: String s = age >= 18 ? "взрослый" : "ребёнок";

Под капотом

В процессоре нет «if» — есть только сравнение и прыжок. Компилятор превращает if в инструкции: сравнить → если условие ложно, перепрыгнуть (goto) через тело.

сравнить x и 0 если x ≤ 0 — прыжок ↓ тело if { ... } else { ... } goto

Предсказание ветвлений (branch prediction). Процессор заранее «угадывает», по какой ветке пойдёт if, и начинает её выполнять. Угадал — быстро; промахнулся — небольшая задержка. Поэтому предсказуемые условия работают быстрее хаотичных.

🎤 Закрыл тему, если можешь объяснить:
• как работает `if/else` и тернарный оператор (если дошёл до 2-го слоя);
• во что превращается `if` под капотом и что такое предсказание ветвлений (если дошёл до 3-го слоя).