2.8. Операторы цикла

Оператор цикла DO (аналогичный оператору цикла FOR в языке PASCAL) записывается в виде:

DO[метка]пеpеменная=начальное значение,конечное значение[,приращение] Если в операторе задана метка, то последним оператором тела цикла является оператор с такой меткой, если метка не задана, то тело цикла должно заканчи­ваться специальным оператором END DO. Переменная цикла может иметь лю­бой арифметический тип, кроме комплексного. Начальное, конечное значение и приращение - любые арифметические выражения, кроме комплексных. Если приращение не задано, оно считается равным І. Последний оператор тела цикла не может быть: безусловным GOTO, GOTO по предписанию, арифметическим IF, блочным IF, оператором DO. Во всех случаях можно последним оператором цикла записывать оператор CONTINUE. Допускаются вложенные циклы, они могут заканчиваться одним и тем же оператором, т.е. иметь одну и ту же метку цикла. Запрещается изменять значение переменной цикла в теле цикла, такая по­пытка рассматривается как синтаксическая ошибка.

Оператор цикла DO WHILE полностью аналогичен по своему действию оператору While в языке PASCAL :

DO [метка] WHILE(логuческое выражение) Такой цикл может заканчиваться либо меткой, либо оператором END DO. Для выхода из любого типа цикла служит оператор EXIT, выполняющий те же дей­ствия, что оператор break в языках C и PASCAL.

Оператор CYCLE завершает текущий шаг цикла и передает управление опе­ратору DO или DO WHILE, он аналогичен оператору continue в языках C и

PASCAL.