Разбираем оператор If на примерах
Выучим сначала три английских слова:
Теперь приведем пример записи нового для вас оператора: If a=28 Then Debug.WriteLine(f) Else k=44 Переводится он так: ЕСЛИ a=28 ТО пиши f ИНАЧЕ присвой k значение 44 Другими словами, мы предлагаем компьютеру прежде, чем что-то делать, сначала подумать, правда ли, что a=28 , и если правда, то выполнить оператор Debug.WriteLine(f), в противном случае выполнить оператор k=44. Таким образом, мы с вами впервые написали оператор, при выполнении которого компьютер не просто выполняет, что приказано, а сначала думает и делает выбор (пока одного из двух). Мы видим, что оператор If включает в себя другие операторы, которые выполняются или не выполняются в зависимости от какого-то условия. Тем не менее, вся эта запись считается одним оператором If. Чтобы привыкнуть к оператору If, рассмотрим пару задач. Задача 1. Компьютер должен перемножить два числа - 167 и 121. Если их произведение превышает 20000, то компьютер должен напечатать текст ПРОИЗВЕДЕНИЕ БОЛЬШОЕ, иначе текст ПРОИЗВЕДЕНИЕ МАЛЕНЬКОЕ. После этого компьютер в любом случае должен напечатать само произведение. Программа: Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim a, b, y As Integer a = 167 b = 121 y = a * b If y > 20000 Then Debug.WriteLine("ПРОИЗВЕДЕНИЕ БОЛЬШОЕ") _ Else Debug.WriteLine("ПРОИЗВЕДЕНИЕ МАЛЕНЬКОЕ") Debug.WriteLine(y) End Sub Пояснение: В процедуре 5 операторов, не считая оператора Dim, последний из них – Debug.WriteLine(y). Поскольку все 5 операторов выполняются по порядку, то он выполнится обязательно. Оператор If у нас – однострочный, пусть вас не вводит в заблуждение то, что он занимает физически две строки, ведь в конце первой из них я поставил знак переноса. Обязательно выполните эту программу в пошаговом режиме. Обратите внимание, что подсветка после If y > 20000 Then перескакивает на Debug.WriteLine ("ПРОИЗВЕДЕНИЕ БОЛЬШОЕ"), а затем на Debug.WriteLine(y). Теперь замените в программе a = 167 на a = 1 и снова выполните программу в пошаговом режиме. Обратите внимание, что теперь подсветка после If y > 20000 Then перескакивает на Debug.WriteLine("ПРОИЗВЕДЕНИЕ МАЛЕНЬКОЕ"), а затем уже на Debug.WriteLine(y). Задача 2. В компьютер вводятся два произвольных положительных числа – длины сторон двух кубиков. Компьютер должен подсчитать объем одного из них – того, что больше по размеру. Обозначим a1 - сторону одного кубика, a2 - сторону другого, bol - сторону большего кубика, V - объем кубика. Приведем три варианта программы: Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim a1, a2 As Double a1 = InputBox("Введите сторону одного кубика") a2 = InputBox("Введите сторону другого кубика") If a1 > a2 Then Debug.WriteLine(a1 * a1 * a1) Else Debug.WriteLine(a2 * a2 * a2) End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Dim a1, a2, V As Double a1 = InputBox("Введите сторону одного кубика") a2 = InputBox("Введите сторону другого кубика") If a1 > a2 Then V = a1 ^ 3 Else V = a2 ^ 3 Debug.WriteLine(V) End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click Dim a1, a2, bol As Double a1 = InputBox("Введите сторону одного кубика") a2 = InputBox("Введите сторону другого кубика") If a1 > a2 Then bol = a1 Else bol = a2 Debug.WriteLine(bol ^ 3) End Sub Каждый из вариантов полезен и должен быть вами понят. Вы должны убедиться, что одна и та же задача может решаться разными программами. Если возникают трудности в понимании, то используйте пошаговый режим и следите за значениями переменных. Для каждого варианта пошаговый режим используйте два раза – когда больше первый кубик и когда больше второй кубик. If без Else. Оператор If можно записывать и без части Else. Например, If s<t Then w=a+1 Это означает, что если s<t, то нужно выполнить оператор w=a+1, в противном случае ничего не делать, а просто перейти к следующему оператору. Фрагмент a = 6 If a > 5 Then a = a + 10 Debug.WriteLine(a) напечатает 16, а фрагмент a = 2 If a > 5 Then a = a + 10 Debug.WriteLine(a) напечатает 2. Еще один пример: Пусть в компьютер вводится слово. Компьютер должен просто распечатать его. Однако, если введенным словом будет «колхозник», то компьютер должен напечатать вместо него слово «фермер». Вот как будет выглядеть наша программа-«цензор»: Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click Dim Slovo As String Slovo = InputBox("Введите слово") If Slovo = "колхозник" Then Slovo = "фермер" Debug.WriteLine(Slovo) End Sub
Несколько операторов после Then и Else. До сих пор мы после Then и после Else писали только по одному оператору. А если нужно больше? Задача: Если a не равно 4, выполнить операторы b=3 и Debug.WriteLine(b), а в противном случае - операторы b=0, a=b+5 и с=0. Вот оператор, решающий эту задачу: If a <> 4 Then b = 3 : Button4.Width = 50 Else b = 0 : a = b + 5 : c = 0 Как видите, после Then и Else можно писать по нескольку операторов, разделенных двоеточиями. Однако, чаще для этого применяют многострочный If.
Популярное: Почему человек чувствует себя несчастным?: Для начала определим, что такое несчастье. Несчастьем мы будем считать психологическое состояние... Как выбрать специалиста по управлению гостиницей: Понятно, что управление гостиницей невозможно без специальных знаний. Соответственно, важна квалификация... Как построить свою речь (словесное оформление):
При подготовке публичного выступления перед оратором возникает вопрос, как лучше словесно оформить свою... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (543)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |