Урок #5: Pascal Циклы For, While, Repeat (материалы к уроку)

Приведём примеры трёх видов цикла в Pascal.
Все три примера выполняют абсолютно идентичные действия, но с использованием разных циклов.

For -- Цикл с известным числом повторений

  • В цикле for -- цикл, используется, когда число повторений известно до начала цикла, начальное значение и предел счетчика цикла можно задать в коде.
  • Может выполниться один и более раз или вообще ни разу (зависит от соотношения начального или конечного значений).
  • Операторные скобки нужны если в теле цикла выполняется более одного действия.
  • Пример:


program qwe;
var i,a,b: integer; // три переменные целого типа

begin

  b := 20;
  a := 5;
  
  {Цикл с известным числом повторений - FOR
  i -- переменная-счетчик цикла}
  for i:=1 to 16 do // i проходит все значения от 1 до 16
  begin
    a := a + 1; // инкрементирование (увеличение собственного значения на 1)
    write('a -->' + a + ' | ');
  end;

end.

While -- Цикл с предусловием

  • В этом цикле сначала происходит проверка условия, а потом выполняется очередной виток (повтор) цикла, если условие по-прежнему истинно.
  • Может выполняться ноль и более раз.
  • Операторные скобки нужны если в теле цикла выполняется более одного действия.

Пример:

program qwe;
var i,a,b: integer; // три переменные целого типа

begin
  b := 20;
  a := 5;
  
  { цикл с предусловием WHILE -- "пока верно"
  (может не выполнится ни разу если условие ложно) }
  while (a <= b) do // пока условие истино: выполняй пока "а" больше "b"
  begin
    a := a + 1; // инкрементирование (увеличение собственного значения на 1)
    write('a -->' + a + ' | ');
  end;

end.

Repeat-Until -- Цикл с постусловием

  • В этом цикле сначала выполняется виток цикла и лишь потом проверяется требуется ли завершать цикла или же нужен следующий повтор.
  • Такой цикл всегда выполнится хотя бы один раз.
  • Операторные скобки не нужны.

Пример:

program qwe;
var i,a,b: integer; // три переменные целого типа

begin

  b := 20;
  a := 5;
  { цикл с постусловием REPEAT-UNTIL -- "пока не"
  (первый раз выполнится в любом случае)}
  repeat
    a := a + 1; // инкрементирование (увеличение собственного значения на 1)
    write('a -->' + a + ' | ');
  until (a>b) // работает пока это условие ложно

end.

Key Words for FKN + antitotal forum (CS VSU):