Содержание

Назад: Переменные

Выражения

Выражение - это набор значений, констант, переменных, функций, связанных между собой различными операциями. Программа выполняет (интерпретирует) такое выражение, вычисляя его значение.

Для изменения приоритета операций в выражении могут присутствовать круглые скобки.

Обозначения

Примечание. Символ # использован в справке только чтобы разделить выражения произвольного и числового типов. К синтаксису QSP данный символ отношения не имеет.

Приоритет операций

Операции в выражении выполняются в порядке приоритета. Операции с одинаковым приоритетом выполняются по порядку слева направо.

Вот список операций для плееров QSP версии 5.9.0 в порядке повышения приоритета (от меньшего к большему):

Выражения в QSP должны удовлетворять следующим условиям:

Описание операций

Важно! Поскольку в QSP нет булевого типа данных, истинность или ложность выражения определяется по его числовому значению. Верным считается числовое выражение, значение которого отлично от 0. При значении 0 выражение считается ложным. Для значения "верно" настоятельно рекомендуется использовать число 1, т.к. операции сравнения и логические операции возвращают именно это значение в случае истинности выражения.

Математические операции

Операции сравнения

Логические операции

Операции со строками

Операции сравнения строк, а так же функции для работы со строками описаны в разделе Строки.

Операции с кортежами

Другие операции и функции для работы с кортежами представлены в разделе Кортежи.

Операции с присваиванием

Помимо обыкновенной операции присваивания в QSP существуют так же совмещённые математические операции с присваиванием.

Операции с присваиванием применимы и к кортежам. В этом случае кортежи изменяются по такому же принципу, как в операциях +, -, /, *.

Другие примеры

x = 5
y = 6
(x ! y) OR (x <> y)  &! Результат 1
x OR y
 &! Результат 1
x AND y
&! Результат 1
y MOD x
 &! 6/5 -> остаток 1 Результат 1
OBJ 'стул'    &! Если в инвентаре есть предмет 'стул', то результат 1, если нет, то 0
LOC 'дом'    &! Если в игре есть локация 'дом', то результат 1, если нет, то 0
res = x*y + y*-x/2  &! (5*6) + (6*(-5)/2)=15  -> в res запишется число 15
res = NO x = y    &! NO 5 = 6 -> NO 0 -> в res запишется число 1

Вперёд: Программный код