Статья 314

Во-первых, не любое утверждение проверяемо, а охранами могут быть лишь проверяемые утверждения. Во-вторых, исполнение условного оператора часто недетерминировано, имеется неопределенность, какое из истинных выбрать. Эта недетерминированность является еще одной из характерных черт логического описания языка программирования, в отличие от функционального.
Циклы в значительной степени определяют специфику современных языков программирования. Оператор цикла имеет вид.
Исполняется он следующим образом. Как и в устном операторе, проверяется, истинна ли хоть одна из охран. Если ни одна из них не истинна - ошибка. Если же истинные имеются, выбирается одна из них. Если выбрана, то выполняется соответствующая последовательность и выполнение оператора цикла возобновляется. Если выбрана, то выполняется соответствующее, и выполнение цикла завершается.
Итак, цикл может завершиться на первом, на втором и на каком угодно шаге.