Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MB6REFRU.pdf
Скачиваний:
10
Добавлен:
13.02.2015
Размер:
3.83 Mб
Скачать

Оператор Do Case...End Case

Оператор Do Case...End Case

Назначение:

Выполняет ту группу операторов, условия для которой истинны.

Предупреждение:

Оператор Do Case не может быть выполнен в окне MapBasic.

Синтаксис:

Do Case do_expr

 

Case case_expr [, case_expr ]

 

statement_list

[

Case... ]

[

Case Else

statement_list ]

End Case

где

do_expr – выражение;

case_expr – выражение, результат которого будет сравниваться со значением do_expr; statement_list – группа операторов.

Описание:

Оператор Do Case, подобно оператору If... Then... Else, проверяет истинность определенных выражений и, в зависимости от результата, выполняет одну из групп операторов. Оператор Do Case в языке MapBasic аналогичен оператору Select Case в языке BASIC. (Имя оператора изменено для того, чтобы не возникало путаницы с оператором Select.)

Выполняя оператор Do Case, MapBasic вычисляет выражение case_expr за первым операционным словом Case. Если результат case_expr равен результату вычисления выражения do_expr, то MapBasic выполнит группу операторов statement_list, которая расположена за первым словом Case; и после этого управление программой передается оператору, следующему после ключевых слов End Case.

Если результаты вычислений выражений do_expr и case_expr из первого предложения Case не равны, MapBasic переходит к проверке выражения case_expr из следующего предложения Case. И так далее. Проверяется каждое условие case_expr по порядку, пока не будет найдено равное do_expr.

Если равного выражения не будет найдено вообще и в операторе нет предложения Case Else, то не будет выполнено ни одного оператора из групп statement_list. Если есть предложение Case Else и не найдено ни одного равенства, то MapBasic выполнит операторы statement_list, заключенные между ключевыми словами Case Else и End Case.

Заметим, что оператор Do Case такой формы:

Do Case expr1

Case expr2 statement_list1

Case expr3, expr4 statement_list2

Case Else statement_list3

End Case

работает так же, как оператор If ... Then ... Else следующей конструкции:

200

Справочник MapBasic

Оператор Do Case...End Case

If expr1 = expr2 Then statement_list1

ElseIf expr1 = expr3 Or expr1 = expr4 Then statement_list2

Else

statement_list3

End If

Пример:

В примере строятся такие текстовые строки: "Первый квартал", "Второй квартал" и т.п., в зависимости от текущего месяца.

Dim cur_month As Integer, msg As String

cur_month

= Month( CurDate( ) )

Do Case

cur_month

Case 1,

2, 3

msg

=

"Первый квартал"

Case 4,

5, 6

msg

=

"Второй квартал"

Case 7,

8, 9

msg

=

"Третий квартал"

Case Else

msg

=

"Четвертый квартал"

End Case

 

 

Смотрите также:

If... Then... Else

Справочник MapBasic

201

Оператор Do...Loop

Оператор Do...Loop

Назначение:

Выполняет последовательность действий по циклу до тех пор, пока выполнится (или, наоборот, не выполнится) некое условие.

Предупреждение:

Оператор Do Loop не может быть выполнен в окне MapBasic.

Синтаксис (вариант 1):

Do

statement_list

Loop [ { Until | While } condition ]

Синтаксис (вариант 2):

Do [ { Until | While } condition ] statement_list

Loop

где

statement_list – группа операторов для одного шага цикла; condition – условие, управляющее выполнением цикла.

Описание:

Оператор повторяет группу операторов statement_list, расположенных между словами Do и Loop до тех пор, пока выражение condition за предложением While не станет истинным (примет значение TRUE), либо так долго, пока выражение condition за предложением Until истинно (все время цикла будет равным TRUE).

Если цикл Do... Loop не содержит слов Until/While, то управление выполнением цикла ведется из операторов statement_list. Это можно осуществить с помощью следующих операторов: Goto, Exit Do. Оператор Exit Do немедленно прекращает любой цикл Do... Loop независимо от присутствия слов Until/While и передает управление программой оператору, следующему за словом Loop.

Предложения Until или While могут находиться как после слова Do, так и после Loop. В зависимости от этого проверка выполнения условия происходит до или после выполнения операторов statement_list. Это важно для первой итерации. Следующая конструкция:

Do statement_list

Loop While condition

выполняет операторы statement_list и потом вычисляет condition. Если condition равно TRUE, MapBaL sic вновь выполняет statement_list. И так далее, пока condition не станет равным FALSE. Цикл прекращается, и программа выполняет следующие операторы.

В следующей конструкции:

Do While condition statement_list

Loop

сначала вычисляется condition, и, если условие равно TRUE, MapBasic выполнит statement_list.

Пример:

В цикле Do... Loop читаются первые пять записей таблицы:

Dim sum As Float, counter As Integer

202

Справочник MapBasic

Оператор Do...Loop

Open Table "world.tab" Fetch First From world counter = 1

Do

sum = sum + world.population Fetch Next From world counter = counter + 1

Loop While counter <= 10

Смотрите также:

Exit Do, For... Next

Справочник MapBasic

203

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]