Оператор If...Then.. Else
Оператор If...Then.. Else – це повний умовний оператор. Його скорочена форма оператор If...Then має наступний синтаксис
If умова Then
оператор
End If
Дія оператора: якщо умова після If істинна, тобто результат дорівнює True, виконується оператор, назначений за Then. Якщо ж результат дорівнює False, то виконується наступний оператор:
If умова Then
Оператор1
Else
Оператор2
End If
Приклад
Private Sub Command1_Click()
a = 6
If a = 7 Then
Print "visual"
Else
Print "basic"
End If
End Sub
Приклад. Упорядкувати числа за спаданням.
Private Sub Command1_Click()
a = Val(Text1.Text)
b = Val(Text2.Text)
c = Val(Text3.Text)
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Max = a
If b > Max Then Max = b
If c > Max Then Max = c
Print Max
Min = a
If b < Min Then Min = b
If c < Min Then Min = c
If a < Max And a > Min Then Print a
If b < Max And b > Min Then Print b
If c < Max And c > Min Then Print c
Print Min
End Sub
Блоковий синтаксис
If умова1 Then
Оператор 1
ElseIf умова2 Then
Оператор 2
Else
Оператор 3
End If
Приклад. Підрахуємо податок залежно від зарплати.
Private Sub Command1_Click()
Dim z, n As Integer
z = Val(Text1.Text)
If z <= 200 Then
n = z * 0.15
ElseIf z >= 200 And z <= 500 Then
n = z * 0.2
Else
n = z * 0.28
End If
Label3.Caption = Str(n)
End Sub
У принципі блоковий запис надає такі ж можливості, як і однорядковий, але якщо в залежності від умови необхідно виконати не просту команду, а групу операторів, варто використовувати блоковий синтаксис. При формуванні більш складних умов блоковий запис зручніший. Використання в цьому випадку блокового синтаксису покращує читабельність програми.
30. Оператор Select Case. Призначення. Приклади.
Ще одним оператором розгалуження Visual Basic є Select Case, що дозволяє виконати одну з декількох груп операторів у залежності від значення умови. Інструкція Select Case має наступний синтаксис:
Select Case Перевірочний вираз
Case Значення 1
Оператори 1
Case Значення 2
Оператори 2
Case Else
Оператори З
End Select
Для блоку Case можна вказувати не тільки одне значення (1), але і декілька, розділених комами (2, 3). Можна визначити також області порівняння (4 То 6) або скористатися відносним порівнянням (Is >= 9). Замість безпосереднього перевірочного виразу можна використовувати ключове слово (Is=”3”). Блок Case Else виконується, якщо жодна з попередніх умов не є істинною.
Приклад
Private Sub Command1_Click()
n = Int(Rnd * 10) + 1 {генератор випадкових чисел}
Select Case n
Case 1
Print " internet"
Case 2
Print "Україна"
Case 3
Print "basic"
Case Else
Print "Ivanenko"
End Select
End Sub
31. Цикли в Visual Basic. Призначення циклів. Приклади.
Для багаторазового виконання одного чи декількох операторів призначені цикли. Visual Basic пропонує двох конструкцій: цикл For... Next, який використовується для виконання визначеної кількості ітерацій, та цикл Do... Loop, що завершується при виконанні заданої умови.
Цикл For.. .Next є найстарішою і найпростішою конструкцією:
For Лічильник = Початкове значення То Кінцеве значення Крок
Оператори
Next Лічильник
На початку виконання циклу значення Лічильник встановлюється рівним Початковому значенню. При кожній ітерації змінна Лічильник збільшується на 1 чи на величину Крок. Якщо вона досягає або стає більше (менше, при від’ємному кроці) Кінцевого значення, то цикл завершується і виконуються наступні оператори. Різниця між початковим і кінцевим значенням, ділена на величину кроку, складає число ітерацій.
Приклад: Роздрукуємо всі числа від 1 до 10.
Private Sub Command1_Click()
For i = 1 To 10
Print i
Next i
End Sub
Для безумовного виходу з циклу використовується оператор Exit For.
Оператор Do...Loop
Якщо кількість ітерацій повинна залежати від умови, використовують цикл Do... Loop. У залежності від позиції умови розрізняють два варіанти циклу Do.. .Loop.
Цикл, з умовою на початку
Dо {While | Until} Умова
Оператори
Loop
Цикл, з умовою наприкінці
Do
Оператори
Loop {While | Until} Умова
Якщо умова перевіряється на початку циклу, то він ніколи не виконується у випадку невиконання умови. Якщо ж перевірка відбувається наприкінці, цикл виконується як мінімум один раз, незалежно від того, виконана умова чи ні. Розглянуті варіанти циклів Do... Loop надають програмісту великі можливості організації повторюваних обчислень.
Оператор While...Wend
У циклі While... Wend послідовність команд виконується доти доки залишається істиною назначена умова.
While Умова
Оператори
Wend
Принцип дії такий, як і циклу Do While.. Loop. Тому замість нього простіше використовувати Do... Loop. Крім того, для циклу While.. .Wend немає оператора дострокового виходу типу Exit.
Private Sub Command1_Click()
While x = True
Print Time
Wend
End Sub
Приклад: Роздрукувати всі тризначні числа сума яких дорівнює 20.
Private Sub Command1_Click()
For i = 1 To 9
For j = 1 To 9
For k = 1 To 9
s = i + j + k
If s = 20 Then Print i; j; k
Next k
Next j
Next i
End Sub
Приклад. Знайти суму членів ряду
Private Sub Command1_Click()
s = 1: x = 1
n = 1: y = 0.1
f = 1
e = 0.001 ‘задана точність
While y >= e
For i = 1 To n
f = f * i
Next i
y = x ^ n / f
s = s + y
n = n + 1
f = 1
Wend
Label2.Caption = Str(s)
End Sub