Глава 5. Условные переходы и циклы
В этой главе вы научитесь:
• изменять порядок выполнения операторов программы,
• использовать условные и безусловные переходы,
• вводить циклы там, где это необходимо.
5.1. Передача управления в программе
Операторы программы обычно выполняются последовательно, друг за другом. Тем не менее, часто возникает необходимость перехода к другой части программы в зависимости от выполнения определенного условия, а также повторного выполнения группы операторов некоторое количество раз. Для этого используются специальные инструкции языка Visual Basic, производящие передачу управления:
• условные переходы,
• безусловные переходы,
• циклы,
• вызовы подпрограмм.
Условные переходы проверяют одно или несколько условий и в зависимости от этого осуществляют выполнение того или иного блока операторов из нескольких возможных, либо вообще ни один из блоков не выполняется. Безусловные переходы передают управление безо всякой проверки.
Циклы дают возможность повторения несколько раз подряд части программы. Некоторые типы циклов делают фиксированное число повторений, другие – выполняются до тех пор, пока не будет выполнено заданное условие.
Подпрограммы будут рассматриваться в следующей главе.
5.2. Условный переход If…Then… Else
Наиболее часто встречается инструкция условного перехода If…Then… Else. В упрощенном варианте эта инструкция может располагаться в одну строку, тогда ее синтаксис будет следующим:
If условие Then инструкция [Else инструкция_else]
Ключевое слово If (Если) начинает строку. После этого находится условие, представляющее собой булево выражение, в зависимости от значения которого происходит выполнение последующих инструкций:
• если результат = True (Истина), то выполняется инструкция после Then (Затем),
• если результат = False (Ложь), то выполняется инструкция после Else (Иначе), а при отсутствии ключевого слова Else (Иначе) – ничего не выполняется.
Приведем несколько примеров использования упрощенного варианта условной инструкции If…Then… Else:
If 5 <varX Then varY = varX * 2
If Form1.Width <> 3800 Then Form1.Width = 3800
If Button = 2 Then PopupMenu mnuSelColor Else PSet (X, Y)
Гораздо более широкие возможности для программиста предоставляет блоковая форма синтаксиса инструкции If…Then… Else, которая допускает проверку не одного, а нескольких условий. В этом случае инструкции располагаются в несколько строк:
If условие Then
[инструкции]
[ElseIf условие-n Then
[инструкции_elseif]…
[Else
[инструкции_else]]
End If
Многое в блоковом синтаксисе похоже на предыдущую форму записи, но есть и отличия: если результатом проверки условия будет False (Ложь), то перед выполнением блока Else (Иначе) возможна проверка дополнительных условий с помощью ElseIf (Иначе Если). Весь блок завершается ключевым