Вычисления в языке 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 <комментарий>
<комментарий>