Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Документ Microsoft Office Word (2).doc
Скачиваний:
13
Добавлен:
29.05.2015
Размер:
41.3 Кб
Скачать

2.4. Операторы сравнения и логические операторы

Определение порядка действий в программе проводится при помощи проверки

истинности некоторых условий, которые представляют собой логические выражения.

Логические выражения записываются при помощи операторов сравнения и

логических операторов и чаще всего используются в управляющей структуре If ...

Результат логического выражения - данное булевского типа: True (истина) или False

(ложь).Then. Формат записи логического выражения

операнд1 оператор_сравнения операнд2,

где операторы сравнения используются для сравнения значений операндов

(любого типа). В Visual Basic применяются следующие операторы сравнения:

. = — равно;

. <> — не равно;

. > — больше;

. < — меньше;

. >= — больше или равно;

. <= — меньше или равно.

Например, при сравнении 5>1 будет возвращено значение True (действительно, число 5

больше чем число 1), а при сравнении 5=1 будет возвращено значение False.

Для записи более сложных логических выражений используются логические

операторы, которые выполняются только над операндами, имеющими тип Boolean. В

Visual Basic доступны следующие логические операторы: Not (Отрицание), And

(Конъюнкция - логическое И), Or (дизъюнкция - логическое ИЛИ), Xor

(исключающая дизъюнкция - исключающее ИЛИ). Синтаксис операторов:

Not операнд1

Операнд1 And Операнд2

Операнд1 Or Операнд2

Операнд1 Xor Операнд2

Операция Not выполняется над одним операндом, а все остальные — над двумя

операндами. Приведем результаты выполнения этих логических операций над всеми

возможными вариантами значений операндов.

Операнд

1

Операнд

2

Not

And

Or

Xor

True

True

False

True

True

False

True

False

False

False

True

True

False

True

True

False

True

True

False

False

True

False

False

False

Пример использования этих операций:

ЕСЛИ 5=2 Or 4>2, ТО А=5.

Если записать это выражение на языке Visual Basic ., то мы получим:

If (5=2) Or (4>2) Then

A=5

EndIf

Переменной A будет присвоено значение 5, т. к. условие верно.

2.5. Условные операторы

Условные операторы применяются для того, чтобы, в зависимости от выполнения

тех или иных условий, передавать управление той или иной части программы. В Visual

Basic . имеется два основных оператора условия:

. управляющая структура If .. Then .. Else;

. управляющая структура Select.. Case.

Рассмотрим, когда нужно применять ту или иную управляющую структуру.

2.6. Управляющая структура If.. Then.. Else

Эта структура встречается в программах наиболее часто. Она может иметь как

упрошенную форму, так и стандартную.

В упрощенной форме данная структура имеет вид:

If выражение Then

Операторы

End If

Если перевести это "на русский язык", то получится что-то вроде:

Если выражение истинно, то

выполняем операторы

конец условия

Приведем фрагмент программы, в которой одно число делится на другое с

проверкой, не является ли делитель равным нулю:

Dim a As Integer, b As Integer

a = 6

b = 2

If (b <> 0) Then

a = a / b

End If

В данном примере деление a на b произойдет, т. к. b не равно нулю и выражение

(intB <> 0) является истинным. Если же мы запишем третью строку так:

b = 0,

то выражение в условии примет значение False (ложь) и операция деления,

стоящая после Then, выполняться не будет, следовательно, не будет и ошибки

деления на ноль.

В стандартной форме структура If .. Then имеет вид:

If выражение Then

Операторы

Else

Операторы, выполняемые в случае, если выражение ложно

End If

Например, мы можем расширить наш предыдущий пример так:

Dim a As Integer, b As Integer

a = 6

b = 2

If ( b <> 0 ) Then

a = a / b

Else

Form1.Print("На ноль делить нельзя!")

Endlf

В данном случае, если выражение (b <> 0) будет истинно, то выполнится

операция деления. В противном случае, если выражение ложно, будет выдано

сообщение: "На ноль делить нельзя!".

Заметим, что в качестве операторов в структурах If .. Then могут быть и

структуры If .. Then:

If выражение1 Then

Операторы1

If выражение2 Then

Операторы2

Else

Операторы3

End If

Else

Операторы4

End If

2.7. Управляющая структура Select Case

Иногда возникает необходимость проверить несколько значений одного и того

же выражения. Для этого можно использовать управляющую структуру выбора Select

Case, синтаксис которой представлен ниже:

Select Case выражение

Case Is = условие1

Операторы1

Case Is = условие2

Операторы2

Case Is = условиеN

ОператорыN

Case Else

Операторы

End Select

где выражение – любое допустимое в Basic выражение, число или строка.

Условия могут содержать

. Оператор сравнения и число, переменную или выражение

. Оператор равно и несколько выражений через запятую, в том числе структуры

Выражение1 To Выражение2.

Теперь запишем приведенный выше пример с использованием Select Case:

Select Case intA

Case Is < 0

Операторы

Case Is = 1

Операторы

Case Is > 12

Операторы

Case Else

Операторы

End Select

Такая запись будет лучше читаться, поэтому в данном случае предпочтительнее

использовать такую структуру.

Кроме того, в управляющей структуре Select Case можно использовать более чем

одно возможное значение, например:

Select Case intA

Case Is = -1, 0, 1, 2

intB = intA + intB

Case Is = 5, 10 To 15

intB = intA — intB

End Select

В данном примере, если переменная intA принимает одно из значений: — 1, 0, 1

или 2, то будет выполнена операция сложения. Если же переменная intA принимает

одно из значений: 5 или от 10 до 15 (10 To 15), то будет выполнена операция

вычитания.

2.8. Операторы циклов

В случае, если выполнение некоторого фрагмента программы надо повторить

определенное количество раз, то применяется цикл

. с фиксированным количеством повторений (структура For .. Next);

если цикл повторяется, пока не будет выполнено какое-либо условие, то

применяется цикл

. с условием (структура Do .. Loop).

Цикл с фиксированным количеством повторений

В этом случае заранее известно количество повторений фрагмента кода

программы. Синтаксис такого цикла имеет вид:

For переменная_цикла = начальное_значение То конечное_значение [Step шаг]

[операторы]

Next [переменная_цикла]

Примечание

Здесь и далее, когда приводится синтаксис какой-либо языковой конструкции, слова,

заключенные в квадратные скобки, не являются обязательными.

При выполнении такого цикла переменная_цикла является своеобразным

счетчиком. Она увеличивается (или уменьшается) с каждым выполнением цикла на

число (шаг), указанное после ключевого слова Step. Если шаг не указан, то по умолчанию

он равен 1.Шаг может быть отрицательным, тогда счетчик убывает. Выполнение

операторов внутри цикла производится до тех пор, пока переменная_цикла не станет

больше (если шаг положителен) величины конечное_значение.

Приведем пример:

Dim i As Integer, sum As Integer

For i = 1 To 10

sum = sum + i

Next i

В данном примере переменная i используется в качестве переменной счетчика цикла.

Цикл будет выполнен 10 раз, т. е. строка

sum = sum + i

выполнится 10 раз, причем значение переменной i будет изменяться от 1 до 10 с шагом

1: 1, 2, 3, ..., 10.

Таким образом, в результате выполнения такого цикла в переменную sum

будет записан результат сложения всех чисел от 1 до 10:

1+2+3+...+ 10.

После слова Next в нашем примере указана переменная цикла i. Этого можно не

делать, однако, указывая имя переменной, вы улучшаете читаемость кода

программы, особенно если в ней много вложенных циклов.

Циклы могут быть вложенными один в другой. Приведем пример:

Dim i1 As Integer, i2 As Integer, sum As Integer

sum = 0

For i1 = 1 To 10

For i2 = 1 To 5

sum = sum + i2

Next i2

Next i1

В этом примере цикл с переменной цикла i2 будет вложен в цикл с переменной цикла i1.

Вы должны всегда завершать с помощью ключевого слова Next сначала вложенный цикл, и

только затем внешний!

Приведем последний пример с циклом For .. Next. Он покажет, как можно

использовать шаг. Например, нам нужно посчитать сумму всех четных чисел от 1

до 100:

Dim i As Integer, sum As Integer

For i = 2 To 100 Step 2

sum = sum + i

Next i

Так как первое четное число равно 2, то цикл мы начнем с него. Каждое четное число

делится на 2, поэтому шаг зададим равным 2 (step 2).