While
 
Оператор управления потоком для цикла

Синтаксис

While [condition]
[statement block]
Wend

Описание

Оператор While вызовет следующий набор операторов в statement block , и выполнит их столько раз, пока выражение condition оценивается как истина.

Если condition оценивается как ложное, тогда оператор While выполняется сначала, а statement block пропускается и выполнение возобновляется сразу после закрывающего Wend.

Если оператор Exit While встречается внутри statement block, цикл прекращается, а выполнение возобновляется сразу после закрывающего Wend. Если оператор Continue While  встречается, остальная часть statement block пропускается , а выполнение переходит к оператору While.

Как и все операторы управления потоков, оператор While может быть вложенным, то есть, он может быть использован в другом блоке оператора While.

примечание: Ключевое слово While также используется в операторе Do...Loop , чтобы указать тип сравнения. Используемое в этом случае заявление Do становится функционально эквивалентно оператору While, но не путайте их слова-окончания Loop и Wend при использовании.

Пример

В этом примере, цикл While используется для реверса строки, путем итерации в обратном направлении. Цикл останавливается, если индекс меньше 0 (0 будучи первым в индексе в строке).
Dim As String sentence                          '' реверс строки
sentence = "The quick brown fox jumps over the lazy dog."

Dim As String ecnetnes
Dim As Integer index
index = Len( sentence ) - 1                     '' указываем последний символ
While( index >= 0 )                             '' остановка после первого символа
  ecnetnes += Chr( sentence[index] )           '' добавить символ к новой строке
  index -= 1
Wend

Print "original: """ ; sentence ; """"
Print "reversed: """ ; ecnetnes ; """"

End 0


Различия диалектов

  • В -lang qb и -lang fblite диалектах, переменные, объявленные внутри WHILE..WEND цикла, имеют расширенную функцию scope как в QB
  • В -lang fb и -lang deprecated диалектах, переменные, объявленные внутри блока While..Wend видны только внутри блока и не могут использоваться вне его.

Отличия от QB

  • Нет

См. также