"Анри Бертьен. Стандартный набор операторов языка REXX (для OS/2) " - читать интересную книгу авторараз.
Например: /* Выведет на экран "Ура!" три раза: */ Do 3; Say 'Ура!'; End; Заметим, что если первой лексемой после DO является имя переменной, а второй - знак равенства ("="), то считается, что имеет место цикл с управляющей переменной (здесь действует то же правило, которое используется для отличия команд системы от оператора присваивания). Поэтому, если Ваше выражение для простого счётчика начинается именно так - возьмите его, по крайней мере, в скобки... Циклы с управляющей переменной. Данная форма определяет управляющую переменную <имя>, которой присваивается начальное значение (результат вычисления <выражения 'FROM'>), а затем, всякий раз при выполнении указанной группы операторов, эта переменная будет изменяться на шаг (путём прибавления результата <выражения 'BY'> в момент выполнения оператора END в конце цикла). Группа операторов будет повторно выполняться до тех пор, пока будет удовлетворяться условие окончания (определённое результатом вычисления выражения <выраж. 'TO'>). станет больше, чем <выраж. 'TO'>. Если же <выраж. 'BY'> отрицательно, то цикл будет заканчиваться, когда <имя> станет меньше, чем <выраж. 'TO'>. Результатом вычисления <выражения 'FROM'>, <выражения 'TO'> и <выражения 'BY'> должны быть числа (не обязательно целые или положительные). Эти выражения вычисляются только один раз до начала цикла и до того, как управляющая переменная будет установлена в своё начальное значение. Значением <выражения 'BY'> по умолчанию будет 1. Если <выражение 'TO'> отсутствует, то цикл будет выполняться сколь угодно большое число раз, пока какое-то другое условие или событие не прекратит его выполнение. Например: /* Выведет на экран: */ Do k=9 to -9 by -4; /* 9 */ Say k; /* 5 */ End; /* 1 */ /* -3 */ /* -7 */ Ещё пример (для не целых чисел): /* Выведет на экран: */ X=0.01; /* 0.01 */ Do y=x to x/0.2 by 0.02; /* 0.03 */ |
|
|