Любой язык программирования опирается на трех китов: следование, ветвление, повторение (цикл). Сюда можно добавить еще одного кита — подпрограмму. Подпрограммы у нас впереди, а про остальное поговорим сейчас.
Всем нам “по жизни” хорошо известно понятие алгоритма. Представьте себе, что в незнакомом городе Вам нужно попасть на вокзал. Если Вы спросите, как туда проехать, то получите ответ типа: “Пройдете до следующего перекрестка и сядете там на автобус №17. Проедете на нем две остановки в сторону центра и пересядете на троллейбус №6 до конечной остановки”. Это типичное следование, т.е. совокупность действий, выполняемых последовательно, друг за другом. Нельзя выполнить очередную инструкцию прежде, чем будет выполнена предыдущая.
Если возможны варианты в выборе маршрута, то данные Вам инструкции будут содержать ветвление: “Если подойдет автобус №12, то доедете им до вокзала без пересадок, иначе проедете любым транспортом три остановки до универмага и сядете там на автобус №23 …”. В этом случае Ваши действия зависят от того, какой автобус первым подойдет к остановке.
Предположим, что Вы хотите дождаться автобуса №12, чтобы с Вашими двумя чемоданами ехать без пересадок. Тогда фактически будет выполнен следующий алгоритм: “Ждать, пока придет автобус №12”. Этот алгоритм содержит повторение. Ждем автобуса. Подходит автобус. Смотрим: №12? Увы, нет. Ждем следующего автобуса. Подходит автобус. Смотрим: №12? Увы, нет. Ждем следующего автобуса… Одни и те же инструкции выполняются несколько раз. Теоретически возможно даже бесконечное число повторений (программисты говорят — зацикливание).
Ветвление в большинстве языков программирования, в том числе и в Бейсике, реализуется с помощью условного оператора, в котором используются ключевые слова IF, THEN, ELSE, в переводе на русский они означают ЕСЛИ, ТО, ИНАЧЕ.
В программе на Бейсике оператор ветвления может записываться в одну строку
IF условие THEN ветвь_”то” | — неполное ветвление |
или | |
IF условие THEN ветвь_”то” ELSE ветвь_”иначе” | — полное ветвление |
и в несколько строк
IF условие THEN | |
ветвь_”то” | — неполное ветвление |
END IF | |
или | |
IF условие THEN | |
ветвь_”то” | |
ELSE | — полное ветвление |
ветвь_”иначе” | |
END IF |
Ветвь “то” исполняется, если при проверке окажется, что условие верно. Если же окажется, что условие неверно, то будет исполнена ветвь “иначе”.
Позже мы познакомимся и с так называемым множественным ветвлением (выбором).
Операторов цикла в Бейсике несколько. Есть два оператора цикла “повторяй, пока выполняется условие”:
DO | |
тело_цикла | — проверка условия в конце цикла |
LOOP WHILE условие | |
DO WHILE условие | |
тело_цикла | — проверка условия в начале цикла |
LOOP |
Из цикла DO можно выйти досрочно по команде EXIT DO, даже если условие выполнения продолжает оставаться истинным.
Цикл “для” (цикл с параметром):
FOR параметр = начальное_значение TO конечное_значение [STEP шаг] |
тело_цикла |
NEXT параметр |
Заметим, что часть заголовка цикла — STEP шаг — может отсутствовать (поэтому она взята в квадратные скобки!). В этом случае считается, что параметр цикла увеличивается каждый раз на 1.
Параметр — это имя некоторой переменной величины. Для каждой переменной Quick Basic отводит место в оперативной памяти, где и хранится ее текущее значение.
Оператор цикла “для” работает следующим образом: при входе в цикл параметру присваивается начальное значение. Проверяется условие “значение параметра не больше конечного значения” при положительном шаге изменения параметра или условие “значение параметра не меньше конечного значения” при отрицательном шаге . Если проверяемое условие истинно, то выполняется тело цикла, затем к значению параметра прибавляется шаг изменения и происходитвозврат к проверке условия. При невыполнении условия управление передается оператору, следующему за признаком конца цикла FOR-NEXT.
Из этого цикла также можно выйти, не дожидаясь конца повторений с помощью оператора EXIT FOR.