Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб_раб_Информатика_1.docx
Скачиваний:
138
Добавлен:
21.05.2015
Размер:
12.04 Mб
Скачать

Управляющие структуры

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

Управляющие структуры VB функционально эквивалентны подобным структурам в языке программирования Бейсик, за исключение For-EachNext.

Ниже перечислены основные управляющие структуры VB:

If-Then-Else Выполняет группу операторов, если соблюдено некоторое условие.

Select Case В зависимости от значения некоторой переменной или результата проверки условия выполняет одну из нескольких возможных групп операторов.

GoTo Выполняет изменение порядка выполнения операторов без проверки какого-либо условия.

For-Next Выполняет группу операторов заданное число раз, известное до начала выполнения цикла.

While-Wend Выполняет группу операторов, пока соблюдается некоторое условие.

Do-Loop Выполняет группу операторов, пока соблюдается или не соблюдается некоторое условие.

For-Each-Next Выполняет действие над каждым объектом семейства или элементом массива.

Exit Выполняет выход из цикла, а также из процедуры или функции.

Структура принятия решения If-Then-Else. Условный оператор If-Then-Else изменяет порядок выполнения программы в зависимости от результатов проверки некоторого условия и дает возможность выбирать из двух альтернативных ветвей кода процедуры на основе оценки того, является ли указанное условие равным True. Синтаксическая конструкция данного оператора имеет две формы:

  • безальтернативную, содержащую два типа:

  • линейный: If <условие> Then <выражение>

  • блочный: If <условие> Then

Блок_операторов

End If

  • альтернативную, содержащую также два типа:

  • линейный: If <условие> Then <выражение_1> Else <выражение_2>

  • блочный: If <условие> Then

Блок_операторов_1

Else

Блок_операторов_2

End If

Дополнительное условие ElseIf. Средствами структуры принятия решения If-Then-Else можно организовать выполнение операторов в зависимости от соблюдения определенного условия. Рассмотрим другой вариант ее использования, на этот раз с ключевым словом ElseIf. Данная конструкция If...Then...ElseIf с несколькими операторами If позволяет проверить дополнительное условие, если исходное условие принимает значение False. Синтаксис оператора, определяющего несколько групп операторов, из которых в зависимости от соблюдения условия должна быть выполнена только одна:

If <условие_1> Then

Блок_операторов_1

ElseIf <условие_2> Then

Блок_операторов_2

Else

Блок_операторов_n

End If

Управляющая структура Select Case. Структура Select Case позволяет в зависимости от значения переменной или выражения выполнить один из нескольких фрагментов программы. Ее действие подобно действию структуры If-Then-Else, в которой условие переопределяется ключевым словом Elself. Структура Select Case работает с единственным оцениваемым выражением, которое проверяется однажды, наверху структуры. Затем Visual Basic сравнивает результат этого выражения со значениями для каждого Case структуры. Если встречается совпадение, выполняется группа операторов, ассоциированных с этим Case.

Синтаксис этого оператора следующий:

Select Case <оцениваемое_выражение>

Case <список_выражений_1>

Блок_операторов_1

Case <cписок_выражений_2>

Блок_операторов_2

. . .

Case <список_выражений_n>

Блок_операторов_n

End Select

Операторы передачи управления. Операторы передачи управления применяются в программе для реализации безусловных алгоритмических конструкций. Они выполняют переход с одного участка программы на другой без проверки какого-либо условия. Оператор безусловного перехода имеет следующий вид:

GoTo <идентификатор>,

где GoTo – ключевое слово, идентификатор – одна из меток программы.

Метка помещается слева от программного оператора и отделяется от него двоеточием.

Управляющая структура For-Next. Данная структура позволяет выполнять несколько команд заданное число раз. Синтаксис цикла For-Next следующий:

For <СчетчикЦикла> = <НачальноеЗначение> To _

<КонечноеЗначение> [Step Шаг]

Блок операторов

[Exit For]

Next <[СчетчикЦикла]>

Параметры СчетчикЦикла, НачальноеЗначение, КонечноеЗначение, Шаг – числовые. Если ключевое слово Step отсутствует, то значение шага равно единице.

Управляющая структура While-Wend. Действие этой структуры подобно действию For-Next, но группа операторов выполняется не заданное число раз, а до соблюдения определенного условия. Синтаксис данной структуры следующий:

While <условие>

<блок операторов>

Wend

Управляющая структура Do-Loop. Рассматриваемая структура похожа на структуру While-Wend, однако дополнительно обладает двумя важными особенностями. Во-первых, условие завершения цикла Do-Loop можно задавать не только в его начале, но и в конце.

Условие в конце цикла гарантирует, что он будет выполнен хотя бы один раз. Во-вторых, условие можно сделать критерием как выполнения цикла Do-Loop, так и его завершения. Последняя возможность в цикле While-Wend также доступна – чтобы цикл выполнялся, пока не соблюдено некоторое условие, его надо указать в структуре While с логическим оператором Not.

В Visual Basic оператор цикла Do-Loop имеет две разновидности Do While … Loop и Do Until … Loop.

Циклы Do While/Until имеют следующий синтаксис:

Do While / Until <условие>

<блок операторов>

[Exit Do]

Loop

или

Do

<блок операторов>

[Exit Do]

Loop While / Until <условие>

Управляющая структура For-Each-Next. Это самый мощный цикл Visual Basic For-Each-Next. Аналогичные структуры в других языках программирования встречаются очень редко. Структура For-Еach-Next предназначена для выполнения одной и той же группы действий над каждым объектом семейства или элементом массива. Это особенно выгодно, если точно не известно, сколько элементов содержит коллекция. Синтаксис оператора For-Each-Next следующий:

For Each <элемент> In <коллекция>

<блок операторов>

Next <элемент>

Оператор Exit. С помощью этого оператора осуществляется выход из процедуры или функции. А также в случаях, когда необходимо прервать выполнение цикла до его завершения.

Команда Exit завершает выполнение цикла и передает управление следующей за циклом конструкции. Синтаксис этого оператора внутри цикла For выглядит так:

Exit For.

Внутри цикла Do синтаксис оператора Exit Do:

For <СчетчикЦикла> = <НачальноеЗначение> To

<КонечноеЗначение> [Step Шаг]

Блок операторов_1

[Exit For]

Блок операторов_2

Next [СчетчикЦикла]

Do [{While / Until} <условие>]

Блок операторов_1

[Exit Do]

Блок операторов_2

Loop [{While / Until} <условие>]

Например:

For nCounter=100 To 1 Step –10

nDecades(nCounter) = nCounter * 2

If nDecades(nCounter) > 20 Then Exit For

Next

Оператор Exit служит также для выхода из процедур Sub и Function.

Синтаксис операторов в этом случае соответственно Exit Sub и Exit Function.

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