Цикл с постусловием
Формат оператора:
repeat
< тело цикла >
until < условие >;
Операторы, заключенные между repeat и until, образуют тело цикла. В данном операторе эти слова являются операторными скобками, поэтому begin и end можно не писать.
На первом шаге происходит выполнение операторов тела цикла. Далее происходит вычисление условия. Обратим внимание на то, что в операторе repeat условие является условием выхода из цикла. Поэтому если условие является ложным, то происходит возврат в тело цикла и повторное его выполнение. Если на какой-то итерации условие выхода из цикла станет истинным, происходит выход из цикла на следующий за ним оператор. Понятно, что тело цикла repeat будет выполнено хотя бы один раз.
Пример. С клавиатуры вводятся натуральные числа. Суммировать числа, пока не будет введен 0.
var a, sum : integer; begin sum := 0; repeat read (a); sum := sum + a; until a = 0; writeln (sum); end. |
{ почистили переменную sum, в которой будет накапливаться сумма вводимых чисел }
{ вводим очередное число в переменную a } { добавляем a к сумме } { делаем до тех пор, пока a не станет равным 0 } |
Заметим, что приведенная программа будет работать правильно, даже если первое введенное число будет 0.