Циклы с неопределенным условием
Довольно часто условие продолжения цикла зависит от результатов, полученных в теле цикла. Следующая конструкция используется в 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 можно заменить ключевым словом WhiIe (при этом следует заменить условие на противоположное). Например, фрагмент:
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.