Ветвление (программирование)


Ветвление в программировании — операция, применяющаяся в случаях, когда выполнение или невыполнение некоторого набора команд должно зависеть от выполнения или невыполнения некоторого условия. Ветвление — одна из трёх (наряду с последовательным исполнением команд и циклом) базовых конструкций структурного программирования.

Основные формы реализации ветвления в императивных языках программирования — условный оператор (оператор if) и оператор многозначного выбора (переключатель, case, switch). В ранних языках низкого уровня ветвление реализуется посредством оператора условного перехода.

Условный оператор реализует выполнение определённых команд при условии, что некоторое логическое выражение (условие) принимает значение «истина» true. В большинстве языков программирования условный оператор начинается с ключевого слова if (в переводе с англ. — «если»). Встречаются следующие формы условного оператора ­-- с одной ветвью и двумя.

При выполнении условного оператора с одной ветвью if <условие> then <команды> end вычисляется условие, и если оно истинно, то выполняются команды до ключевого слова end, в противном случае выполнение программы продолжается со следующей за условным оператором команды. В языках низкого уровня (ассемблерах) это — единственная доступная форма условного оператора. В некоторых языках для условного оператора с одной ветвью используется специальное ключевое слово (обычно это then, в переводе с англ. — «то»).

При выполнении условного оператора с двумя ветвями if <условие> then <команды1> else <команды2> endпри истинности условия выполняются команды после ключевого слова then, при ложности — команды после ключевого слова else. При необходимости проверить последовательно несколько условий возможно каскадирование условных операторов:

В этом случае условия будут проверяться последовательно, и как только встретится истинное, будет выполнен соответствующий набор команд и исполнение перейдёт к команде, следующей за условным оператором. Если ни одно из условий не окажется истинным, выполняются команды из ветви else.