Доступные версии документации

Оператор цикла с параметром

Синтаксис
           
FOR <инициализатор1>{,<инициализатор2>}
WHILE <выражение> [BY <инкремент1>{,<инкремент2>}] LOOP
   <тело цикла>
ENDLOOP
Описание

<инициализатор1> и <инициализатор2> – операторы присвоения начальных значений параметрам цикла.

<инкремент1> и <инкремент2> – операторы изменения значений <инициализатора1> и <инициализатора2> соответственно.

<выражение> должно быть логического типа.

До начала цикла выполняется присвоение значений <инициализатору1> и, если задан, <инициализатору2>, после чего проверяется значение <выражение>. Если его значение TRUE, выполняется <тело цикла>, начиная с LOOP. После чего выполняется изменение параметров цикла (если задана конструкция BY …) заново вычисляется <выражение> и принимается решение о продолжении (прекращении) цикла. Если значение <выражения> FALSE, управление передается на следующий после ENDLOOP оператор.

Чтобы количество циклов было конечным, в <теле цикла> или в конструкции BY … обязательно должно выполняться изменение значений параметров или условий, влияющих на <выражение>.

Примеры
  1.  

    for i:=1 while i<=10 by i:=i+1 loop
     x[i]:=0;
    endloop

    Данная конструкция аналогична следующим:

    for i:=1 while i<=10 loop
     x[i]:=0;
     i:=i+1;
    endloop;
    i:=1;
    while i<=10 loop
     x[i]:=0;
     i:=i+1;
    endloop;
  2.  

    for i:=0, n:=1 while i<8 by i:=i+1, n:=n*2 loop
    endloop;
Заметили ошибку?
Выделите текст и нажмите Ctrl + Enter