Разветвления в циклических программах
Если некоторые действия в программе, например вычисления по формулам, должны происходить только при выполнении какого-либо условия, то такая программа называется разветвляющейся, а разветвление вычислений обеспечивается условным оператором.
Для записи проверяемого условия используются операции сравнения: > (больше), >= (больше либо равно), < (меньше), <= (меньше либо равно), = (равно), < > (не равно).
Каждое условие всегда имеет два значения: либо оно верно (True – правда), либо неверно (False – ложь). Проверяемое условие может быть и сложным, состоящим из нескольких простых условий. Для записи сложного условия используются логические операции объединения: And – сложное условие верно, когда оба простых условия верны, иначе сложное условие будет ложным; Or – сложное условие верно, когда хотя бы одно из простых условий верно, и будет ложным только, когда все простые условия будут ложными.
Например, сложное условие x > y And a >= 5 будет верно только тогда, когда верны одновременно оба условия x > y и a >= 5. Сложное условие x > y Or x = a будет верно тогда, когда выполняются либо условие x > y, либо a >= 5,либо оба этих условия одновременно.
Объединяя условия логическими операциями And и Or, можно составить и более сложное условие, например:
x >= 1 And x =< 10 Or x = 15
Это условие будет верно, если х находится внутри интервала [1:10] либо если х = 15.
Условный оператор If
Условный строчный оператор имеет общий вид If…Then…Else… (если…тогда…иначе…) и представляет в общем случае конструкцию:
If <условие> Then <оператор1> Else <оператор2>
которая имеет следующий логический смысл: если условие выполняется, то нужно выполнить оператор1, иначе – следует выполнить оператор2.
В операторе может отсутствовать Else.
Если при проверке условия должны выполняться несколько операторов, то условный оператор записывается в блочной форме и заканчивается строкой с ключевыми словами End If:
If <условие> Then
<оператор1а>
<оператор1б>
Else
<оператор2а>
<оператор2б>
End If
Когда необходимо проверить более одного условия, можно использовать вложение операторов If друг в друга.
Пример 6.1. Программа вычислений значений w с использованием строчного условного оператора If:
; ;
Исходные данные: x = 0.5(0.5)4, n = 7. Текст программы:
Sub CommandButton1_Click()
Dim x As Single, y As Single, w As Single, n As Single
n = Val(InputBox("Введите n"))
For x = 0.5 To 4 Step 0.5
y = Exp(-2 * x) + 1
z = Log(x) / (x + 1)
If x < z ^ 2 Then w = Sqr(x * y) Else w = n * x + 2
Msgbox (“w=” & w)
Next
End Sub
Пример 6.2. Вычислить значение yдля вводимых с клавиатуры некоторых значений n и x:
Программа: