Категорії

Інші сайти по VB

Розгалуження в Visual Basic

text-indent

Оператори управління порядком виконання команд (галуження) вже застосовувалися в розглянутих прикладах. Вони дозволяють оцінити реальну ситуацію і адекватно реагувати на неї, ухвалюючи рішення про подальші дії. Visual Basic надає для цього ряд функцій і операторів

If...Then

Найчастіше використовується оператор If...Then, який може мати просту однорядкову або блокову структуру.

Однорядковий синтаксис:

If Умова Then Оператор [Else Оператор]

Функціонування оператора такої структури відносне просто. Якщо умова після If істинно, тобто результат рівний True, виконується оператор, вказаний за Then. Якщо ж результат рівний False, то виконується оператор, наступний за ключовим словом Else, якщо таке є:

If A = 7 Then Beep

'оператори

If X < 9 Then Print "False!" Else Print "True!"

У першому прикладі видається звуковий сигнал, якщо змінна A рівна 7. У другому прикладі виводиться текст False!, якщо значення змінної X менше 9; інакше виводиться текст True!.

If Умова Then

[Оператори1]

[ElseIf Умова1 Then

[Оператори2]

Else

[Оператори3]]

End If

Як значення для блоку Case можна указувати не тільки одне значення (1), але і декілька, розділених комою (2, 3). Можна визначати також області порівняння (4 To 6) або скористатися відносним порівнянням (Is >= 9) Замість безпосереднього перевірочного виразу можна використовувати ключове слово Is.

Блок Case Else виконується, якщо жодне з попередніх умов не є істинним.

Якщо умові Select Case відповідає декілька блоків Case, то виконується перший з них:

Private Sub Command1_Click()

Select Case nVariable

Case 0

Print "Рівне 0"

Case -10 Дo 10

Print "Між -10 і 10, крім 0"

End Select

End Sub

У другому блоці Case обробляються значення від -10 до 10, проте значення 0 перехоплюється першим блоком Case. Тому оператори другого блоку Case виконуватимуться, якщо значення умови більше або рівно -10 і менше 0, а також більше 0 і менше або рівне 10.

Цикли

Для багатократного виконання одного або декількох операторів призначені цикли Visual Basic пропонує дві конструкції: цикл For...Next дає можливість встановлювати число проходів циклу, а цикл Do...Loop завершується при виконанні заданої умови.

For...Next

Цикл For...Next є найстарішою і найпростішою конструкцією:

For Лічильник = Начальноє_значеніє Те Конечноє_значеніє [Step Крок] Оператори Next [Лічильник]

На початку виконання циклу значення Лічильник встановлюється в Початкове значення. При кожному проході змінна Лічильник збільшується на 1 або на величину Крок. Якщо вона досягає або стає більш ніж Кінцеве значення, то цикл завершується і виконуються наступні оператори. Різниця між початковим і кінцевим значенням, що ділиться на величину кроку, складає число проходів:

For i = 1 То 10

Print i * 100

Next i

Часто для обчислень усередині циклу використовуються числові змінні:

'(General)(Declaration)

Dim aArray(1997 To 2050)

Private Sub Command1_Click()

For i = LBound(aArray) To UBound(aArray)

Print aArray(i)

Next

End Sub

В даному прикладі виводиться весь вміст масиву.

Для безумовного виходу з циклу використовується оператор Exit For:

For i = 0 To 10

if i = 5 Then Exit For Else Print i

Next i

Do...Loop

Якщо кількість проходів повинна залежати від умови, використовують цикл Do...Loop.

Залежно від позиції умови розрізняють два варіанти циклу Do...Loop.

Цикл, керований на початкуDo [(While | Until) Умова]

[Оператори]

[Exit Do]

[Оператори]

Loop

Цикл з післяумовою

Do

[Оператори]

[Exit Do]

[Оператори]

Loop [(While | Until) Умова]

Якщо умова перевіряється на початку циклу, то він ніколи не виконується у разі невиконання умови. Якщо ж перевірка відбувається в кінці, цикл виконується як мінімум один раз, незалежно від того, виконана умова чи ні.

Тіло циклу виконується невизначене число разів, поки умову не викличе вихід з циклу:

Do Until EOF(#1)

Input #1, SomeData

Loop

Do

X = X + 1

Print "Hello"

Loop While X < 9

Розглянуті варіанти циклів Do...Loop надають розробникові великі можливості організації обчислень, що повторюються.

While...Wend

У Visual Basic цикл While...Wend грає другорядну роль. Він використовується тільки для сумісності з іншими діалектами Basic, а також для сумісності з ранішими версіями Visual Basic, в яких не було оператора Do...Loop.

While Умова

[Оператори]

Wend

Принцип його дії такий же, як і циклу Do...Loop. Тому замість нього простіше використовувати Do...Loop. Крім того, для циклу While...Wend немає оператора дострокового виходу типу Exit.

На головну

Hosted by uCoz