Конструкция If . . . Then…Else(развилка)
Конструкция If . . . Then применяется, когда необходимо выполнить один или группу операторов в зависимости от некоторого условия. Синтаксис этой конструкции позволяет задавать ее в одной строке или в нескольких строках программы:
Вариант 1:
If условие Then выражение else выражение
Например:
If x>5 then y=4 else y=3
Преимущества-экономия места и времени
Вариант 2:
If условие Then
Выражение
Else
Выражение
End If
Например:
If x > 6 Then
y = 5
Else
y = 4
End If
Преимущества-После Then и Else можно указывать несколько выражений.
Обычно условие является простым сравнением, но оно может быть любым выражением с вычисляемым значением. Это значение интерпретируется как False (Ложь), если оно нулевое, а любое ненулевое рассматривается как True (Истина). Если условие истинно, то выполняются все выражения, стоящие после ключевого слова Then. Если условие ложно,то выполняются все выражения,стоящие после ключевого слова else.
6.3 Конструкция Select Case
Конструкция Select Case является альтернативой конструкции If . . . Then . . . Else в случае выполнения блока, состоящего из большого набора операторов. Конструкция Select Case предоставляет возможность, похожую на возможность конструкции If . . . Then . . . Else, но в отличие от нее она делает код более читаемым при наличии нескольких вариантов выбора.
Конструкция Select Case работает с единственным проверяемым выражением, которое вычисляется один раз при входе в эту конструкцию. Затем VBA сравнивает полученный результат со значениями, задаваемыми в операторах Case конструкции. Если найдено совпадение, выполняется блок операторов, ассоциированный с оператором Case:
Select Case проверяемое_выражение
[Case список_выражений1
[блок_операторов1]]
[Case список_выражений2
[блок_операторов2]]
. . .
[Case Else
[блок_операторовn]]
End Select
Например:
Sub primer()
Dim x As Single
Dim y As Single
x = InputBox("введите x”)
Select Case x
Case 4, 5, 6
y = 3
Case 0
y = 4
Case Else
y = 5
End Select
MsgBox "y=" & y
End Sub
Читается это так:если x=4, или x=5, или x=6,то y=3.Если x=0,то y=4.Иначе y=5.
Операторы цикла(циклические алгоритмы)
1)цикла For..Next
For Счетчик = Нач. знач. TO конечное знач. STEP
. . .
NEXT Счетчик
Например:
For i = 1 To n Step 2
sum = sum + i
Next
p.s. если не писать step,то будет задействован шаг по умолчанию равный 1.
2) Цикл Do..While
Do While условие
<Блок операторов>
Loop
Например:
Do While n > 5
s = (s + n) / 2
n = s / n
Loop
3) Цикл Do..Until
Do
<Блок операторов>
Loop Until условие
Например:
Do
x = x - 2
Loop Until x < 0
Одномерные массивы.
Статический массив:
Dim имя массива(число) as тип элемента
Например:
Dim a(10) as single
Динамический массив:
Dim имя массива() as тип элемента
Например:
Dim b() as single
Далее размерность массива должна быть определена в программе с помощью инструкции:
Redim имя массива(n)
Например :
Redim c(n)
p.s.n-может быть и числом,и переменной.
Ручной ввод размерностей и элементов динамического массива:
n=inputbox(“n=”)
Redim a(n)
For i to n
a(i)=inputbox(“введите “ & i &” –ый элемент массива = “)
next
Ввод массива через арифметическое выражение:
Dim a() as single
n=inputbox(“n=”)
Redim a(n)
For i=1 to n
a(i)=(i-1)*(i+1)
next
Вывод массива в окно выводов результатов:
Sub PR18() Dim A() As Single, Str1 As String Dim n As Integer, i As Single
n = InputBox("Введите число элементов массива:", "Определение размера") ReDim A(n) As Single Str1 = "" For i = 1 To n A(i) = Val(InputBox("Введите " & i & "-ый элемент массива", "Заполнение массива")) Str1 = Str1 & A(i) & " " Next MsgBox "Массив: " & Str1
End Sub
Пример решения задачи:
Найти количество положительных элементов массива:
Sub primer()
Dim a() as single,i as single,k as single
n = InputBox("Введите число элементов массива:", "Определение размера") ReDim A(n) As Single
k=0 For i = 1 To n
A(i) = Val(InputBox("Введите " & i & "-ый элемент массива", "Заполнение массива")) if A(i)>0 then k=k+1
next
msgbox “количество положительных элементов массива” & k
end sub