LOOP (итерационная структура, цикл)
сколько TIMES
LOOP [ i=начало TO конец [BY шаг] ]
UNTIL логическое выражение
WHILE логическое выражение
statements
.
сколько | Числовая константа, переменная или выражение, которое определяет, СКОЛЬКО раз (TIMES) будут повторены операторы в цикле LOOP. |
TIMES | Опция TIMES (раз) выполняет операторы столько раз, СКОЛЬКО задано. |
i | Метка переменной-счетчика цикла. |
= | Присвоить переменной (i) новое значение при каждой итерации цикла LOOP. |
начало | Числовая константа, переменная или выражение, которое задает начальное значение для счетчика цикла (i) при первом проходе через структуру LOOP. |
TO | Синтаксическая связка для параметра КОНЕЦ. |
конец | Если i больше чем КОНЕЦ, то выполнение цикла LOOP завершается. |
BY | Синтаксическая связка для параметра ШАГ. |
шаг | Числовая константа, переменная или выражение. ШАГ определяет величину, на которую будет увеличиваться i при каждом проходе цикла. Если параметр BY опущен, то по умолчанию подразумевается, что i увеличивается на 1. |
UNTIL | Параметр UNTIL вычисляет ЛОГИЧЕСКОЕ ВЫРАЖЕНИЕ ПЕРЕД очередным проходом цикла. Если ЛОГИЧЕСКОЕ ВЫРАЖЕНИЕ вычислено как ИСТИНА, то выполнение цикла LOOP завершается. |
WHILE | Параметр WHILE вычисляет ЛОГИЧЕСКОЕ ВЫРАЖЕНИЕ ПЕРЕД очередным проходом цикла. Если ЛОГИЧЕСКОЕ ВЫРАЖЕНИЕ вычислено как ЛОЖЬ, то выполнение цикла LOOP завершается. |
логическое выражение | Числовая или строковая переменная, выражение или функция. ЛОГИЧЕСКОЕ ВЫРАЖЕНИЕ вычисляет условие. Передача управления зависит от результата (ИСТИНА или ЛОЖЬ) выражения. Нулевое (или пустое) значение является ЛОЖЬю, любое другое значение - ИСТИНА. |
Структура LOOP повторяет выполнение операторов внутри структуры. Условия для LOOP всегда вычисляются в начале цикла, перед каждым проходом. Структуры LOOP могут быть вложены в другие исполняемые структуры, и другие исполняемые структуры могут быть вложены в структуры LOOP.
LOOP без параметров выполняется бесконечно, до тех пор, пока не выполнится оператор BREAK или RETURN. BREAK прекращает цикл LOOP и продолжает выполнение программы с оператора, идущего за структурой LOOP.
Все операторы в структуре LOOP исполняются до оператора CYCLE. CYCLE немедленно передает управление на начало цикла LOOP для следующего прохода, не исполняя операторов, стоящих в LOOP после CYCLE.
Пример:
LOOP !Бесконецный цикл
Char = GetChar() ! получить символ
IF Char <> CarrReturn ! если это не возврат каретки
Field = CLIP(Field) & Char
! то добавить его к строке
ELSE ! иначе
BREAK ! завершить цикл
. . !Конец операторов IF и LOOP
IF ERRORCODE() !При ошибке
LOOP 3 TIMES ! повторить три раза
BEEP ! звуковой ситнал тревоги
. . !Конец операторов LOOP и IF
LOOP I# = 1 TO 365 BY 7 !В цикле I# увеличивается на 7
!каждый раз
GET(DailyTotal,l#) ! читаем каждую 7-ю запись
DO WeeklyJob ! выполняем подпрограмму
. !Конец цикла
SET(MasterFile) !Указатель - на первую запись
LOOP UNTIL EOF(MasterFile)!Обрабатываем все записи
NEXT(MasterFile) ! читаем запись
ProcMaster ! вызываем процедуру
. !Конец цикла
LOOP WHILE KEYBOARD() !Опустошаем буфер клавиатуры
ASK ! не обрабатывая нажатия клавиш
. !Конец цикла
См. также: ,