Этот оператор передает управление первому оператору, следующему за тем составным оператором, из которого осуществлен выход, или за оператором, вызвавшим подпрограмму. Ключевые слова соответствуют выходу из составных операторов:
DEF — ОПИСаНИЯ ФУНКЦИИ DEF FN,
DO — оператора повторения DO,
FOR — оператора повторения FOR,
FUNCTION — оператора подпрограммы-функции FUNCTION,
SUB — оператора подпрограммы-процедуры SUB.
ОПЕРАТОРЫ УСЛОВНОЙ ПЕРЕДАЧИ УПРАВЛЕНИЯ
предназначены для изменения естественного порядка исполнения команд при выполнении некоторых условий. По аналогии с операторами безусловной передачи управления (3.1) и (3.2) имеется два оператора условной передачи управления:
ON expression» GOSUB line-list (3.5)
ON expression» GOTO line-list (3.6),
в которых целочисленное выражение expression% может принимать значения от о до количества меток в списке line-list (а список может содержать до 255 меток). По нулевому значению выражения выполняется оператор в следующей строке, а по другим значениям управление передается метке, положение которой в списке соответствует вычисленному номеру.
Использование команды SELECT CASE предпочтительнее использования ON. . .GOSUB и ON. . .GOTO (за исключением команд прерывания). Поскольку мы упомянули прерывания, необходимо дать краткое разъяснение.
Кроме операторов, передающих управление в зависимости от значения вычисленного выражения, существуют операторы передающие управление при наступлении какого-то заранее заданного в программе события. В отличие от описанных операторов, которые могут управлять вычислительным процессом только в момент их исполнения, операторы передачи управления по событию могут изменить естественный порядок исполнения команд в любой момент и поэтому носят название прерываний. (Поневоле вспоминается известный анекдот о капрале, приказавшем солдату выкопать канаву от столба до обеда.) Такого рода операторы описаны далее в разделе о командах для взаимодействии с внешними по отношению к ОЗУ-ЦП устройствами.
ПРОЦЕДУРНЫЙ ОПЕРАТОР
Это специально выделенный оператор, возникший в результате усовершенствования оператора безусловного перехода к подпрограмме (3.2). В отличие от этого оператора при обращении к процедуре
• указывается не метка, а имя подпрограммы-процедуры name,
• из вызывающей программы подпрограмме могут быть переданы аргументы в соответствии со списком argument! ist