Язык процедур 2-REXX для OS-2


DO - часть 3


Числа не обязательно должны быть целыми.

Пример: X=0.3 /* Выведет: */ Do Y=X to X+4 by 0.7 /* 0.3 */ say Y /* 1.0 */ end /* 1.7 */ /* 2.4 */ /* 3.1 */ /* 3.8 */

Управляющую переменную можно изменить внутри цикла, но это может повлиять на количество повторений цикла. Изменение значения управляющей переменной считается дурным стилем программирования, хотя при некоторых обстоятельствах это может быть вполне приемлемо.

Следует отметить, что конечное условие проверяется в начале каждой итерации (повторения); а также после наращивания управляющей переменной, на второй и всех последующих итерациях. Поэтому группа инструкций может быть полностью пропущена, как только удовлетворится конечное условие. Отметим также, что на управляющую переменную ссылаются по ее имени. Если, например, для управляющей переменной используется составное имя A.I, то изменение I внутри цикла приведет к изменению управляющей переменной.

Количество итераций управляемого цикла может быть дополнительно ограничено с помощью фразы FOR. В этом случае должно быть указано выражение exprf, и результатом его вычисления должно быть целое неотрицательное число. Это число играет роль счетчика повторений в простом повторяющемся цикле, устанавливая предел количества итераций внутри цикла, если никакое другое условие не завершит его прежде. Подобно выражениям во фразах TO и BY, выражение во фразе FOR вычисляется только один раз: когда инструкция DO выполняется первый раз и управляющая переменная получает свое начальное значение. Аналогично условию TO, условие FOR проверяется в начале каждой итерации.

Пример: Do Y=0.3 to 4.3 by 0.7 for 3 /* Выведет: */ say Y /* 0.3 */ end /* 1.0 */ /* 1.7 */

В управляемых циклах имя, описывающее управляющую переменную, может быть указано в предложении END. Это имя должно совпадать с именем в предложении DO во всех отношениях, кроме регистра клавиатуры - строчные буквы или прописные - (отметим, что никакие подстановки для составных переменных не производятся); в противном случае выдается сообщение о синтаксической ошибке.


- Начало -  - Назад -  - Вперед -