Шаг 71.
Оператор цикла с предусловием repeat

    На этом шаге мы рассмотрим еще один цикл с предусловием.

    Оператор цикла с постусловием состоит из ключевого слова repeat, за которым следуют операторы тела цикла, и замыкающего ключевого слова until, после которого указывается условие окончания цикла.

    Упрощенно общую структуру оператора repeat можно представить так:

repeat
  <Оператор1>;
  <Оператор2>;
      .  .  .
  <ОператорN>;
until <Условие>; 

    Заметим, что в отличие от while, оператор repeat не требует пользования составного оператора, когда в его теле необходимо записать более одного оператора.

    Кроме того, оператор repeat является не столь универсальным как оператор while, поскольку его Условие располагается в конце тела цикла и операторы его тела будут, в отличие от цикла while, всегда выполняться, как минимум, один раз. Это означает, что оператор repeat не годится для записи циклов, в которых может возникать ситуация, когда тело цикла не должно выполняться ни разу. Выражение, используемое в качестве Условия окончания цикла, должно давать результат булевского типа. Общий принцип работы цикла repeat такой же, как у цикла предусловием, но в отличие от while, Условие проверяется не перед выполнением тела цикла, а после него, и управление циклом repeat прямо противоположно управлению циклом while. To есть цикл продолжается, пока Условие равно False и заканчивается, когда Условие становится равным True. Пример:

const 
   n =  20; 
begin
  .   .   .   .
  Summa  :=  0 ;
  i := 1; { Должны быть начальные установки      } 
          { переменных, стоящих в условии цикла. }
  repeat
    Summa := Summa + A[i];
    i := i + 1; { Как минимум в одном операторе тела  }
                { цикла должно быть изменение пере-   }
                { менных условия цикла, приводящее    }
                { в итоге к истинности условия.       }
  until i > n;
  .   .   .   .
end.

    На следующем шаге мы рассмотрим цикл for.




Предыдущий шаг Содержание Следующий шаг