if / else
Обычно код идёт сверху вниз, строка за строкой. if / else даёт первую силу управления потоком — ветвиться, выбрать путь.
«Если условие — иди сюда, иначе — туда». Как развилка на дороге.
if (age >= 18) {
System.out.println("пускаем");
} else {
System.out.println("не пускаем");
}
Копнуть глубже
Тернарный оператор — короткий if для присваивания: String s = age >= 18 ? "взрослый" : "ребёнок";
Под капотом
В процессоре нет «if» — есть только сравнение и прыжок. Компилятор превращает if в инструкции: сравнить → если условие ложно, перепрыгнуть (goto) через тело.
Предсказание ветвлений (branch prediction). Процессор заранее «угадывает», по какой ветке пойдёт if, и начинает её выполнять. Угадал — быстро; промахнулся — небольшая задержка. Поэтому предсказуемые условия работают быстрее хаотичных.
🎤 Закрыл тему, если можешь объяснить:
• как работает `if/else` и тернарный оператор (если дошёл до 2-го слоя);
• во что превращается `if` под капотом и что такое предсказание ветвлений (если дошёл до 3-го слоя).
• во что превращается `if` под капотом и что такое предсказание ветвлений (если дошёл до 3-го слоя).