В документации по Lotus операторWhile считается пережитком прошлого. Нет никаких причин отдавать предпочтение операторуWhile/Wend перед операторамиDo While илиDo Until. Примеры конструкцийWhile и Do приведены в листинге 22.12.
Существует несколько вариантов циклаDo. Условие, управляющее цикломDo, может проверяться или в начале, или в конце цикла, а сам цикл продолжается до тех пор, пока выполняется условиеWhile илиUntil Проверка условий в конце блока операторов гарантирует, что блок выполнится, по крайней мере, один раз; проверка условия в начале блока такой гарантии не дает. Обратите внимание на то, что с помощью оператораDo можно преднамеренно создать бесконечный цикл; просто не надо задавать проверяемое условие Однако будьте с этим осторожны, так как вы все-таки должны каким-либо способом обеспечить возможность прерывания этого цикла.
Листинг 22.12 - Конструкции из операторов While и Do
'переменная loopcontrol используется для управления циклом |
'хотя переменная loopcontrol - это переменная типа integer, ее конкатенация с S |
'автоматически преобразует ее в строковую переменную для функции print |
Dim loopControl as Integer |
'Цикл While/Wend |
loopControl = 0 |
While loopControl <20 |
Print "Loop number: " s loopControl loopControl = loopControl + I |
Wend |
'Цикл Do |
' Это бесконечный цикл |
Do |
Print "Loop number: " & loopControl loopControl = loopControl + 1 |
Loop |
'Это цикл Do While |
loopControl = 10 |
Do While loopControl > 0 |
Print "Loop Control = " S loopControl loopControl = loopControl - 1 |
Loop |
'Это цикл Do Until |
loopControl = 10 |
Do Until loopControl > 20 |
Print "Loop Control = " S loopControl |
loopControl = loopControl + 1 |
Loop |
'Цикл Do While |
'Этот цикл выполняется по крайней мере один раз |
'так как проверка условия цикла осуществляется в конце блока |
loopControl = 10 |
Do |
Print "Loop Control = " S loopControl |
loopControl = loopControl - 1 |
Loop While loopControl > 0 |
'Цикл Do Until |
'Этот цикл выполняется по крайней мере один раз |
loopControl = 10 |
Do |
Print "Loop Control = " & loopControl loopControl = loopControl + 1 |
Loop Until loopControl > 20 |
Последними блочными операторами цикла являются операторыFor и ForAll. В оператореFor блок операторов выполняется заданное число раз. В операторе ForAll блок операторов выполняется один раз для каждого элемента в заданном массиве или списке. Число выполнений блокаFor определяется заданием начального и конечного значений счетчика цикла, а также (необязательно) значением приращения. В счетчик цикла заносится начальное значение, и затем блок операторов начинает выполняться. В конце цикла значение счетчика цикла автоматически увеличивается на величину инкремента (на 1 или заданную величину), и блок операторов выполняется еще раз. Это продолжается до тех пор, пока значение счетчика не достигнет заданного конечного значения.
Инструкция ForAll выполняется аналогично, за исключением того, что число выполнений блока не задается; блок выполняется один раз для каждого элемента в массиве или списке, используемом как управляющая переменная. Примеры операторовFor и ForAll приведены в листинге 22.13
Листинг 22.13 - Конструкции из операторов For и ForAll
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.