Документация по Clarion

         

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 ! не обрабатывая нажатия клавиш
. !Конец цикла
См. также: ,

Содержание раздела