Ветвление в программировании — операция, применяющаяся в случаях, когда выполнение или невыполнение некоторого набора команд должно зависеть от выполнения или невыполнения некоторого условия. Ветвление — одна из трёх (наряду с последовательным исполнением команд и циклом) базовых конструкций структурного программирования.
Основные формы реализации ветвления в императивных языках программирования — условный оператор (оператор if
) и оператор многозначного выбора (переключатель, case
, switch
). В ранних языках низкого уровня ветвление реализуется посредством оператора условного перехода.
Условный оператор реализует выполнение определённых команд при условии, что некоторое логическое выражение (условие) принимает значение «истина» true
. В большинстве языков программирования условный оператор начинается с ключевого слова if
(в переводе с англ. — «если»). Встречаются следующие формы условного оператора -- с одной ветвью и двумя.
При выполнении условного оператора с одной ветвью if <условие> then <команды> end
вычисляется условие, и если оно истинно, то выполняются команды до ключевого слова end
, в противном случае выполнение программы продолжается со следующей за условным оператором команды. В языках низкого уровня (ассемблерах) это — единственная доступная форма условного оператора. В некоторых языках для условного оператора с одной ветвью используется специальное ключевое слово (обычно это then
, в переводе с англ. — «то»).
При выполнении условного оператора с двумя ветвями if <условие> then <команды1> else <команды2> end
при истинности условия выполняются команды после ключевого слова then
, при ложности — команды после ключевого слова else
. При необходимости проверить последовательно несколько условий возможно каскадирование условных операторов:
В этом случае условия будут проверяться последовательно, и как только встретится истинное, будет выполнен соответствующий набор команд и исполнение перейдёт к команде, следующей за условным оператором. Если ни одно из условий не окажется истинным, выполняются команды из ветви else
.