Elite Games - Свобода среди звезд!

X2 - Скрипты - ScE - Операторы условного перехода

ОПЕРАТОРЫ УСЛОВНОГО ПЕРЕХОДА

Операторы условного перехода используются для того, чтобы изменить последовательность выполнения команд в скрипте в зависимости от определенного условия. Простейшим примером оператора условного перехода может служить оператор if применяющийся в паре с оператором end. Логика его работы следующая:

if (выражение принимающее значение «Истина» или «Ложь»)
операторы, исполняющиеся в случае, если выражение принимает значение «Истина»
end

Пример:

210 if [HOMEBASE]
220 @ = [THIS] -> fly to homebase
230 end


В строке 210 проверяется, задана ли база для данного корабля. Если она установлена (функция [HOMEBASE] вернула значение, которое может быть интерпретировано как «Истина»), то управление переходит в строку 220, где корабль получает команду возвращаться на неё. Поскольку нам может быть необходимо, чтобы при выполнении определенного условия исполнялся не один, а целая группа операторов, мы должны указать, где именно заканчивается эта группа. Для этой цели и служит оператор end. Оператор if может принимать и более сложные формы:

if (выражение, принимающее значение «Истина» или «Ложь»)
операторы, исполняющиеся в случае, если выражение принимает значение «Истина»
else
операторы, исполняющиеся в случае, если выражение принимает значение «Ложь»
end

if not (выражение, принимающее значение «Истина» или «Ложь»)
операторы исполняющиеся в случае если выражение принимает значение «Ложь»
else
операторы исполняющиеся в случае если выражение принимает значение «Истина»
end

if (выражение1, принимающее значение «Истина» или «Ложь»)
операторы исполняющиеся в случае, если выражение1 принимает значение «Истина»
else if (выражение2, принимающее значение «Истина» или «Ложь»)
операторы исполняющиеся в случае, если выражение1 принимает значение «Ложь», а выражение2 принимает значение «Истина»
else
операторы исполняющиеся в случае, если выражение1 принимает значение «Ложь» и выражение2 принимает значение «Ложь»
end

if not (выражение1, принимающее значение «Истина» или «Ложь»)
операторы исполняющиеся в случае, если выражение1 принимает значение «Ложь»
else if not (выражение2, принимающее значение «Истина» или «Ложь»)
операторы, исполняющиеся в случае, если выражение1 принимает значение «Истина», а выражение2 принимает значение «Ложь»
else
операторы, исполняющиеся в случае, если выражение1 принимает значение «Истина» и выражение2 принимает значение «Истина»
end

skip if (выражение, принимающее значение «Истина» или «Ложь»)
оператор, исполняющийся в случае, если выражение принимает значение «Ложь»

В данной форме записи оператора if оператор end не требуется, поскольку в случае если выражение принимает значение «Истина» пропускается (не выполняется) только один оператор (не группа операторов), следующий в строке сразу за skip if

skip if not (выражение принимающее значение «Истина» или «Ложь»)
оператор, исполняющийся в случае, если выражение принимает значение «Истина»

Назад к оглавлению
Денис Кузьмин a.k.a. Mad_Kuzia
К началу раздела | Наверх страницы Сообщить об ошибке
X2 - Скрипты - ScE - Операторы условного перехода
Все документы раздела: Главная |


Дизайн Elite Games V5 beta.18
EGM Elite Games Manager v5.17 02.05.2010