Операторы организации вычислений

Вычисления в языке Microsoft BASIC организуются с использованием выражений, аналогичных математическим формулам. Выражения включают константы, переменные, элементы массивов, обращения к функциям, знаки операций, скобки. Группа операторов организации вычислений объединяет операторы следующего назначения:

• присваивания значений переменным;

• организации условного и безусловного переходов;

• перехода по выбору из списка;

• перехода по выбору операторного блока;

• организации циклов.

8.2. Оператор присваивания - LET

Назначение: Присваивание, переменной значения некоторого числового или строкового выражения.

Синтаксис: [LET] <переменная> = <выражение>

8.3. Оператор безусловного перехода – GOTO

Назначение: Безусловный переход на строку, указываемую меткой или номером.

Синтаксис: GOTO {<метка строки> | <номер строки>)

8.4. Оператор условного перехода - IF...THEN...ELSE

Назначение: Позволяет передавать управление программой в зависимости от результата проверки условия. Имеет две разновидности.

Синтаксис: Первая форма представляет собой оператор, записываемый в одну строку:

IF <условие> THEN <выражение 1> [ELSE <выражение 2>]

Аргумент Описание

<условие> Логическое выражение, принимающее значение TRUE (истина) <- ненулевое значение, - или FALSE (ложь) - нулевое значение;

<выражение1> Вычисляется, если условие принимает значение TRUE, и пропускается в противном случае;

<выражение 2> Вычисляется, если условие принимает значение FALSE.

Если ELSE-часть отсутствует, а <условие> имеет значение FALSE, управление передается следующему оператору. Выражения имеют следующий синтаксис:

[<операторы>] [GOTO] <номер строки> | GOTO <метка>)

Вторая (блоковая) форма оператора условного перехода имеет вид:

IF <условие 1> THEN [<блок 1>] ELSE

IF <условие 2> THEN [<блок 2> j]

ELSE [<блок N>] ]

END IF

Аргумент Описание

<условие 1> Логическое выражение, принимающее значение TRUE (ненулевое) или FALSE (нулевое)

(I = 1...N)

<блок 1> Последовательность операторов, занимающих одну или несколько строк (1 = 1...N).

8.5. Операторы перехода - ON...GOSUB, ON...GOTO

Назначение: Передают управление на одну из строк или меток программы.

Синтаксис: ON <выражение> GOSUB {<список меток>} <список номеров строк>)

ON <выражение> GOTO {<список меток>} <список номеров строк>

Аргумент <выражение> может быть любым числовым выражением, но перед выполнением операторов ON...GOSUB или ON...GOTO оно округляется до ближайшего целого числа. Метки и номера строк в списках отделяются запятыми. Значение аргумента <выражение> определяет метку или номер строки, на которую осуществляется переход. Например, если значение равно 3, переход осуществляется на строку, определенную третьим параметром в списке. Значение аргумента <выражение> должно быть больше или равно 1 и меньше или равно числу параметров в списке. При выходе значения за эти пределы возможны следующие ситуации:

Значение выражения Действие

0 или больше числа Управление передается следующему оператору параметров в списке программы

Число меньшее нуля Сообщение об ошибке: Illegal function call -или большее 255 неверный вызов функции

8.6. Оператор выбора - SELECT CASE

Назначение: Выбор и выполнение одного из нескольких блоков в зависимости от значения ключевого слова.

Синтаксис: SELECT CASE <ключевое слово>

CASE [<ключ 1>]

[ операторный блок 1>]

[CASE [<ключ 2>]

[<операторный блок 2>]]

[CASE [<ключ N-1>]

[ операторный блок N-1>]]

[CASE ELSE

[ операторный блок N> ] ]

END SELECT

Аргумент Описание

<ключевое слово> Любое числовое или строковое выражение

<Операторный блок 1> Операторный блок - это любое число операторов на одной или более строках (I = ...N)

Синтаксис аргумента <ключ1>:

В качестве ключа (I = 1...N) используется одна из следующих форм:

1. <выражение> [, <выражение>...]

2. <выражение> ТО <выражение>...

3. IS <операция отношения> <выражение> [, ...]

<выражение> Любое числовое или строковое выражение. Тип выражения должен соответствовать типу текущего ключевого слова <операция отношения>

< меньше

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

> больше

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

о не равно

= равно

8.7. Оператор цикла FOR … NEXT

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

Синтаксис: FOR <счетчик> = <начальное значение> ТО <конечное значение> [STEP <приращение>]

NEXT [<счетчик 1>[, <счетчик 2>...]

Аргумент Описание

<счетчик> Внутренняя числовая переменная счетчика циклов. Переменная не может быть элементом записи или элементом массива

<начальное значение> Начальное значение счетчика циклов

<конечное значение> Конечное значение счетчика циклов

<приращение> Приращение счетчика циклов; может иметь отрицательное значение.

8.8. Оператор цикла - DO...LOOP

Назначение: Оператор обеспечивает циклическое выполнение группы операторов, пока <условие> в конструкции WHILE истинно (TRUE) или до тех пор, пока <условие> в конструкции UNTIL не станет истинным. Имеет две разновидности, в зависимости от того, проверяются ли условия в начале или конце цикла.

Синтаксис: DO <блок операторов>]

LOOP [[WHILE [ UNTIL) <условие>]

DO [(WHILE | UNTIL) <условие>1

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

LOOP

Аргумент Описание

<блок операторов> Один или несколько операторов языка BASIC, которые будут циклически выполняться ;

<условие> Любое выражение, принимающее значение либо TRUE (не нуль), либо FALSE (нуль).

8.9. Оператор цикла – WHILE…WEND

Назначение: Выполнение совокупности операторов пока условие истинно.

Синтаксис: WHILE<условие>

[<операторы>]

WEND

Если условие истинно, то выполняются все операторы до ключевого слова WEND. Затем происходит возврат на проверку условия. Если оно по-прежнему истинно, то процесс продолжается. Если ложно, то управление передается следующему за WEND оператору.

8.10. Оператор комментария - REM

Назначение: Включение в программу поясняющих записей-комментариев.

Синтаксис: REM <комментарий>

<комментарий>