Читайте также:
|
|
Теперь посмотрим, как писать разветвляющиеся программы на Visual Basic.
Выучим сначала три английских слова:
If | читается "иф" | переводится "если" |
Then | читается "зэн" | переводится "то" |
Else | читается "элз" | переводится "иначе" |
Теперь приведем пример записи нового для вас оператора:
If a=28 Then Print f Else k=44
Переводится он так:
ЕСЛИ a=28 ТО печатай f ИНАЧЕ присвой переменной k значение 44.
Другими словами, мы предлагаем компьютеру сначала подумать, правда ли, что a=28, и если правда, то выполнить оператор Print f, в противном случае выполнить оператор k=44. Таким образом, мы с вами впервые написали оператор, при выполнении которого компьютер не просто выполняет, что приказано, а сначала думает и делает выбор (пока одного из двух).
Мы видим, что оператор If включает в себя другие операторы, которые выполняются или не выполняются в зависимости от какого-то условия. Тем не менее, вся эта запись считается одним оператором If. Чтобы привыкнуть к оператору If, рассмотрим пару задач.
Задача 1. Компьютер должен перемножить два числа - 167 и 121. Если их произведение превышает 2000, то компьютер должен напечатать текст ПРОИЗВЕДЕНИЕ БОЛЬШОЕ, иначе текст ПРОИЗВЕДЕНИЕ МАЛЕНЬКОЕ. После этого компьютер в любом случае должен напечатать само произведение.
Программа:
Dim a As Integer
Dim b As Integer
Dim y As Integer
Private Sub Form_Load()
a = 167
b = 121
y = a * b
If y > 20000 Then Debug.Print "ПРОИЗВЕДЕНИЕ БОЛЬШОЕ" _
Else Debug.Print "ПРОИЗВЕДЕНИЕ МАЛЕНЬКОЕ"
Debug.Print y
End Sub
Пояснение: В процедуре 5 операторов, последний – Debug.Print y. Поскольку эти 5 операторов выполняются по порядку, то он выполнится обязательно.
Обязательно выполните эту программу в пошаговом режиме. Обратите внимание, что подсветка после If y > 20000 Then перескакивает на Debug.Print "ПРОИЗВЕДЕНИЕ БОЛЬШОЕ ", а затем на Debug.Print y.
Теперь замените в программе a = 167 на a = 1 и снова выполните программу в пошаговом режиме. Обратите внимание, что теперь подсветка после If y > 20000 Then перескакивает на Debug.Print "ПРОИЗВЕДЕНИЕ МАЛЕНЬКОЕ ", а затем уже на Debug.Print y.
Задача 2. В компьютер вводятся два произвольных положительных числа - длины сторон двух кубиков. Компьютер должен подсчитать объем одного кубика - большего по размеру.
Обозначим a1 - сторону одного кубика, a2 - сторону другого, bol - сторону большего кубика, V - объем кубика. Приведем три варианта программы:
ВАРИАНТ 1 | Dim a1 As Double Dim a2 As Double Private Sub Command1_Click() a1 = InputBox("Введите сторону одного кубика") a2 = InputBox("Введите сторону другого кубика") If a1 > a2 Then Debug.Print a1 * a1 * a1 Else Debug.Print a2 * a2 * a2 End Sub |
ВАРИАНТ 2 | Dim a1 As Double Dim a2 As Double Dim V As Double Private Sub Command1_Click() a1 = InputBox("Введите сторону одного кубика") a2 = InputBox("Введите сторону другого кубика") If a1 > a2 Then V = a1 * a1 * a1 Else V = a2 * a2 * a2 Debug.Print V End Sub |
ВАРИАНТ 3 | Dim a1 As Double Dim a2 As Double Dim bol As Double Private Sub Command1_Click() a1 = InputBox("Введите сторону одного кубика") a2 = InputBox("Введите сторону другого кубика") If a1 > a2 Then bol = a1 Else bol = a2 Debug.Print bol * bol * bol End Sub |
Каждый из вариантов должен быть вами понят. Если возникают трудности, то используйте пошаговый режим и следите за значениями переменных. Для каждого варианта пошаговый режим используйте два раза - когда первый кубик больше и когда второй кубик больше. Как видите, одна задача может решаться разными программами.
Итак, если паровая машина избавила человека от тяжелого физического труда, то оператор if избавил человека от тяжелого умственного труда, в нашем случае - от необходимости решать, какое из двух чисел больше другого.
Оператор If можно записывать и без части Else. Например, If s<t Then w=a+1. Это означает, что если s<t, то нужно выполнить оператор w=a+1, в противном случае ничего не делать, а просто перейти к следующему оператору.
Для примера рассмотрим простейшую задачу: В компьютер вводится слово. Компьютер должен просто распечатать его. Однако, если введенным словом будет "колхозник", то компьютер должен напечатать вместо него слово "фермер".
Вот как будет выглядеть наша программа-"цензор":
Dim Slovo As String
Private Sub Command1_Click()
Slovo = InputBox("Введите слово")
If Slovo = "колхозник" Then Slovo = "фермер"
Debug.Print Slovo
End Sub
До сих пор мы после Then и после Else писали только по одному оператору. А если нужно больше?
Задача: Если a не равно 4, выполнить операторы b=3 и Print b, а в противном случае - операторы b=0, a=b+5 и с=0.
Вот оператор, решающий эту задачу:
If a <> 4 Then b=3: Print b Else b=0: a=b+5: с=0
Как видите, после Then и Else можно писать по нескольку операторов, разделенных двоеточиями.
Дата добавления: 2015-11-16; просмотров: 49 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Что такое выбор(ветвление) | | | Правила записи однострочного оператора If |