Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УчебноеПособие по VB_6.doc
Скачиваний:
57
Добавлен:
24.12.2018
Размер:
3.17 Mб
Скачать

Оператор Select Case

Оператор Select Case, также как и оператор IF является оператором выбора. Он позволяет выполнить одну группу операций из нескольких в зависимости от значения переключающего выражения. Структура данного оператора похожа на структуру многострочного If, но он имеет больше условий выбора, чем этот оператор. Синтаксис оператора:

Select Case <переключающее выражение>

Case значение1

[операторы ]

Case значение2

[операторы]

. . .

Case Else

[операторы]

End Select

’’Значение ” может быть

константой

переменной,

списком значений (1,2,3,5)

диапазоном значений (1 Tо 9 )

условием (Is > 0)

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

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

Циклы первого типа называются циклами типа "ДО", а циклы второго типа - циклами типа "ПОКА".

В зависимости от времени проверки условия окончания цикла циклы делятся на циклы с предусловием и циклы с постусловием. В циклах с предусловием вначале проверяется условие оконча­ния цикла и, если условие окончания цикла не выполняется, то выполня­ется тело цикла. В таких циклах значение переменной, проверяемой в те­ле цикла, должно быть вычислено заранее или ей должно быть присвоено некоторое значение, заведомо большее условия окончания цикла, до входа в цикл. В циклах с постусловием условие окончания цикла проверяется в конце цикла.

Циклы могут быть организованы с использованием оператора IF или с использованием специальных операторов: For/Next, While/Wend, Do/Loop.

Цикл с постусловием

Rem использование для организации

Rem цикла оператора If

M1:

i=iнач: REM заголовок цикла

<тело цикла, вычисление функции F(i)>

i=i+di

If i<=iкон Then Goto M1: Rem конец цикла

Print "Результат"; F

Rem использование оператора For

For i=iнач To N Step di

<тело цикла, вычисление функции F(i)>

Next i

Print "Результат";F

Схема алгоритма

Оператор For/Next.

Оператор For/Next (рис. 3.8) служит для организации циклов с заданным числом повторений. Цикл относится к циклам с постусловием. Схема алгоритма приведена на рис. 3.8. Формат оператора:

For i=iнач To iкон Step di

<тело цикла>

Next I

В данном формате iнач – начальное значение переменной цикла, iкон – конечное значение переменной цикла, а di – шаг приращения значения переменной цикла.

Операторы For и Next образуют операторные скобки, между которыми заключено тело цикла.

Оператор While/Wend.

Оператор While/Wend служит для организации циклов с заданным числом повторений, относится к циклам с постусловием. Условием окончания цикла является достижение функцией, вычисляемой в теле цикла, заданного значения. Схема алгоритма приведена на рис. 3.9. Синтаксис оператора:

While <условие>

<тело цикла>

Wend

Цикл с предусловием

Rem Использование оператора If

F=<выражение>

i=iнач

M1:

If F<= Then Goto M2

<тело цикла, вычисление F(i)>

i=i+di

Goto M1

M2:

Print "Результат"; F

Rem Использование оператора

Rem While/Wend

F=<выражение>

i=iнач

While F>

<тело цикла, вычисление F(i)>

i=i+di

Wend

Print "Результат";F

Схема алгоритма

Тело цикла выполняется в том случае, когда условие истинно. Если условие ложно, то программа выходит из цикла. Особенностью использования данного цикла является то, что значение вычисляемой функции должно быть известно перед входом в цикл. Иначе, если начальное значение функции меньше заданной величины , программа никогда не войдет в цикл.

Оператор Do/Loop - универсальный оператор, служит для организации циклов типа "ПОКА". Он может быть организован как цикл с предусловием, так и как цикл с постусловием. Когда в теле цикла используется оператор While, то тело цикла выполняется в том случае, если условие истинно. Когда используется оператор Until, то тело цикла выполняется в том случае, если условие ложно. Синтаксис оператора:

а) цикл с предусловием

Do [ ( While | Until) Условие ]

[операторы]

[Exit Do]

[ операторы]

Loop

б) цикл с постусловием

Do

[операторы ]

[Exit Do]

[операторы] Loop [(While | Until) Условие ]

Для досрочного выхода из цикла используется оператор Exit Do.

В Visual Basic появился новый оператор цикла для работы с целочисленными переменными For/ Each. Оператор For/Each - перечислимый тип циклов. Синтаксис оператора:

For Each переменная цикла In объект

[операторы]

Next переменная цикла.

Пример 3.5:

Dim nNumber As Variant

Dim MyArray As Variant

MyArray = Array (3,6,9,9,5,2,3,1)

For Each nNumber In MyArray

If nNumber > 5 then Debug.Print nNumber

Next nNumber

Здесь MyArray – массив, nNumber – текущий индекс элемента массива. Пока nNumber принадлежит массиву цикл выполняется. Пользователю не надо заботиться о контроле числа элементов в массиве. Обязательное требование – переменная цикла должна быть переменной целого типа.

Пример 3.6: Процедура контроля ввода данных

Sub ControlVvodaNumber()

Dim ctl As Control, b As String

Dim FirstPoint As Boolean

For Each ctl In Controls

If TypeOf ctl Is TextBox Then

FirstPoint = False

For I = 1 To Len(Trim(ctl.Text))

b = Mid(Trim(ctl.Text), I, 1)

Select Case Asc(b)

Case Asc("0") To Asc("9")

Case Asc(".") And FirstPoint = False

FirstPoint = True

Case Else

MsgBox "Ошибка ввода данных"

Exit Sub

End Select

Next I

End If

Next ctl

End Sub

Процедура обеспечивает контроль правильности ввода в текстовые поля числовых данных.

Объявлена переменная ctl как переменная типа Control. К данному типу относятся все элементы управления, размещенные на форме.

Программа проверяет, если тип элемента управления TextBox, тогда проверяется, является ли текущий символ цифрой или точкой. Не допускается в строке более одной точки (разделитель десятичных знаков).

Контроль осуществляется после ввода данных.