Иллюстрированный самоучитель по VB.NET

       

Циклы с неопределенным условием


Довольно часто условие продолжения цикла зависит от результатов, полученных в теле цикла. Следующая конструкция используется в VB .NET для построения цикла с неопределенным условием, тело которого выполняется минимум один раз (завершающая проверка):

Do

' Команды VB .NET (0 и более)

Until условие_выполняется

Конечно, условие не ограничивается простой проверкой равенства. В вашем распоряжении операторы сравнения, перечисленные в табл.3.10.

Таблица 3.10. Операторы сравнения

Строковые операнды по умолчанию сравниваются в соответствии с порядком символов Unicode. Таким образом, «А» предшествует «В», но «В» предшествует «а» (а пробел предшествует любому печатному символу). Строка «aBCD» предшествует строке «CDE» (то есть считается «меньше» ее), поскольку прописные буквы в кодировке стоят раньше строчных.

Как и в VB6, вы можете игнорировать регистр символов во всех сравнениях модуля или формы; для этого в начало модуля или формы включается команда Option Compare Text. Команда Option Compare Binary возвращается к стандартному сравнению строк в соответствии с положением символов в кодировке ANSI. При активном режиме Option Compare Text используется порядок символов для страны, указанной при установке системы Windows.

Ключевое слово Unti 1 можно заменить ключевым словом Whi I e (при этом следует заменить условие на противоположное). Например, фрагмент

Do

' Команды VB .NET (0 и более)

Loop Until X <> String.Empty

эквивалентен следующему фрагменту:

Do

' Команды VB .NET (0 и более)

Loop While X = String.Empty

Обратите внимание на использование константы String.Empty вместо пустой строки "", менее наглядной и чаще приводящей к ошибкам. Если переместить ключевое слово Whi 1е или Unti 1 в секцию Do, проверка будет выполняться в начале цикла (и при ложном условии цикл не будет выполнен ни одного раза). Пример:

Do While Text1.Text <> String.Empty

' Обработать непустой текст Loop

Условия объединяются при помощи операторов Or, Not и And. Пример:

Do While count < 20 And savings < 1000000

Если вы предпочитаете использовать старую конструкцию While-Wend, учтите, что клю-чевое слово Wend было заменено командой End While.



Содержание раздела