1. ОПЕРАТОРИ ЗА ПРОВЕРКА НА УСЛОВИЕ - IF
Алгоритмите често са разклонени. Разклоненията в програмите на Visual Basic се
описват чрез условния оператор и оператора за избор на вариант.
Условният оператор IF позволява изчислителният процес да се разклони в зависимост
от това, дали е изпълнено дадено условие или не. Операторът за проверка на условие има
няколко различни форми, които дават възможност разклонението да се осъществи в две или
повече посоки. Коя форма ще се използва зависи от конкретната задача.
1. Оператор If…Then (кратка форма на условния оператор)
Както и в другите езици за програмиране, така и тук, този оператор се изпълнява по
следния начин: Изчислява се стойността на логическото условие. Ако то има стойност true,
се изпълнява операторът след Then. В противен случай не се предприема нищо и
изпълнението на програмата продължава със следващия оператор в кода на програмата.
а) Едноредов вариант If…Then
Използва се, когато трябва да проверим дали е
изпълнено някакво условие и ако е, да изпълним точно една
инструкция. Ако условието не е вярно, не се предприема
нищо.
If Условие Then Оператор
Тук Условие е проста променлива или израз, които
имат стойност true или false.
не
условие
да
оператор
Пример: If x=0 Then MsgBox "Не можете да делите"
Забележка: При едноредовата форма е допустимо и използване на повече от един оператор,
но те трябва да са разделени с двоеточие.
Пример: If A > 10 Then A = A + 1 : B = B + A : C = C + B
б) Многоредов (блоков) вариант If…Then…End If
Синтаксис:
условие
да
оператор 1
оператор 2
оператор N
не
If Условие Then
Оператор1
Оператор2
Оператор3
....
End If
Тази форма на оператора If позволява след проверката
на условието, ако то е вярно, да се изпълнят повече от една
инструкции (блок от инструкции). Краят на поредицата от
инструкции се определя от End If
Пример: If number > 5 Then
Label1.Caption = "нещо"
Label1.BackColor = &HFF00FF
End If
2. Оператор If…Then…Else (пълна форма на условния оператор)
2. Тази форма позволява да се извършат действия и в двата случая – и когато условието
е вярно, и когато не е. Операторът се изпълнява по следния начин: Изчислява се стойността
на логическото условие. Ако то има стойност true, се изпълняват операторите след Then, а
тези след Else се прескачат. Ако логическото условие има стойност False, операторите след
Then се прескачат, а се изпълняват тези след Else.
а) едноредов вариант If…Then…Else
да
условие
оператор 1
не
оператор 2
След Then има точно една инструкция и след Else има точно една инструкция
If Условие Then Оператор1 Else Оператор2
б) многоредов (блоков) вариант If…Then…Else…End If
да
условие
оператор 1
блок на
истината
не
оператор 1
блок на
лъжата
оператор 2
оператор N2
оператор N1
След Then и след Else може да има толкова инструкции, колкото е необходимо.
If Условие Then
Инструкции1
Else
Инструкции2
End If
Пример:
If number > 5 Then
Label1.Caption = "нещо"
Label1.BackColor = &HFF00FF
Else
Label1.Caption = "друго нещо"
Label1.BackColor = &HFFFF00
3. End If
При тази форма на оператора винаги ще се изпълни едната група оператори – или тази
след Then, или тази след Else. В някои ситуации обаче се налага и при двата случая да не се
предприема нищо. Тогава се използва следващата форма на If.
3. Оператор If…Then…ElseIf
а) оператор If…Then…ElseIf за проверка на две условия
да
условие 1
инструкции 1
Използва
се,
когато
ако
проверяваното условие не е вярно, трябва да
се провери друго условие. Общият вид е:
не
условие 2
не
да
инструкции 2
If условие1 Then
Инструкции1
ElseIf условие2 Then
Инструкции2
End If
Това означава следното: Ако условие1 е вярно, изпълни Инструкции1, в противен
случай провери условие2 и ако то е вярно, изпълни инструкции2, иначе не прави нищо.
Пример:
If number > 5 Then
Label1.Caption = "нещо"
Label1.BackColor = &HFF00FF
ElseIf number<5 Then
Label1.Caption = "друго нещо"
Label1.BackColor = &HFFFF00
End If
В случая, ако number = 5, няма да се предприеме нищо.
б) оператор If…Then….ElseIf за проверка на няколко условия
Когато трябва да проверяваме няколко условия, можем да използваме следната форма
на оператор ElseIf.
да
инструкции 1
условие 1
не
условие 2
не
да
инструкции 2
условие N
да
инструкции N
не
If условие1 Then
Инструкции1
ElseIf условие2 Then
Инструкции2
ElseIf условие3 Then
Инструкции3
....
End If
4. И тук може да се окаже, че нито едно от проверяваните условия не е вярно, така че
може да не се изпълни нито една инструкция. Няма съществени ограничения за броя на
използваните клаузи ElseIf. Разбира се прекалената им употреба прави програмата тромава и
трудна за разчитане.
4. Оператор If….Then…ElseIf-Else
За да сме сигурни, че ще се изпълни поне една инструкция (ако е необходимо),
например да се изведе някакво съобщение или грешка, добавяме оператор Else на края на
командата:
If условие1 Then
Инструкции1
да
не
ElseIf условие2 Then
условие 1
Инструкции2
не
инструкции 1
ElseIf условие3 Then
условие 2
Инструкции3
да
....
Else
инструкции 2
не
условие N
Други
инструкции
да
други
End If
инструкции N
инструкции
Ако не е изпълнено нито едно условие, тогава ще се изпълнят инструкциите след Else.
5. Влагане на оператори If…Then
Ако е необходимо, можем да влагаме операторите един в друг, но това не е желателно
поради нечетливост на кода и възможност за допускане на грешки.
Private Sub Command1_Click()
If Age > 21 Then
If Rating = 10 Then
Command1.Caption = "xxxxxxxxxxx"
End If
Else
Command1.Caption = "zzzzzzzzzzzzzzzzz"
End If
End Sub