Euphoria предоставляет богатый набор операторов для работы с переменными. Мы можем разделить все операторы Euphoria на следующие группы:
- Арифметические Операторы
- Операторы отношений
- Логические Операторы
- Операторы присваивания
- Разные Операторы
Арифметические операторы
Арифметические операторы используются в математических выражениях так же, как они используются в алгебре. В следующей таблице перечислены арифметические операторы. Предположим, что целочисленная переменная A содержит 10, а переменная B содержит 20, тогда —
оператор | Описание | пример |
---|---|---|
+ | Добавление — добавляет значения по обе стороны от оператора | А + Б даст 30 |
— | Вычитание — вычитает правый операнд из левого операнда | A — B даст -10 |
* | Умножение — умножает значения по обе стороны от оператора | А * Б даст 200 |
/ | Деление — делит левый операнд на правый операнд | Б / у даст 2 |
+ | Унарный плюс — это не влияет на значение переменной. | + B дает 20 |
— | Унарный минус — это создает отрицательное значение данной переменной. | -B дает -20 |
Реляционные операторы
Существуют следующие реляционные операторы, поддерживаемые языком Euphoria. Предположим, что переменная A содержит 10, а переменная B содержит 20, тогда —
оператор | Описание | пример |
---|---|---|
знак равно | Проверяет, равны ли значения двух операндов или нет, если да, тогда условие становится истинным. | (A = B) не соответствует действительности. |
знак равно | Проверяет, равны ли значения двух операндов или нет, если значения не равны, тогда условие становится истинным. | (A! = B) верно. |
> | Проверяет, больше ли значение левого операнда, чем значение правого операнда, если да, тогда условие становится истинным. | (A> B) не соответствует действительности. |
< | Проверяет, меньше ли значение левого операнда, чем значение правого операнда, если да, тогда условие становится истинным. | (A <B) верно. |
> = | Проверяет, больше ли значение левого операнда или равно значению правого операнда, если да, тогда условие становится истинным. | (A> = B) не соответствует действительности. |
<= | Проверяет, меньше ли значение левого операнда или равно значению правого операнда, если да, тогда условие становится истинным. | (A <= B) верно. |
Логические операторы
В следующей таблице перечислены логические операторы. Предположим, что логические переменные A содержат 1, а переменная B содержит 0, тогда —
оператор | Описание | пример |
---|---|---|
а также | Называется логический оператор И. Если оба операнда отличны от нуля, тогда условие становится истинным. | (А и В) ложно. |
или же | Вызывается логическим оператором ИЛИ. Если любой из двух операндов не равен нулю, тогда условие становится истинным. | (А или В) это правда. |
исключающее | Вызывается логическим оператором XOR. Условие истинно, если один из них истинно, если оба операнда истинны или ложны, тогда условие становится ложным. | (A xor B) верно. |
не | Вызывается логическим оператором NOT, который отрицает результат. Используя этот оператор, true становится ложным, а false становится истинным | не (Б) верно. |
Вы также можете применить эти операторы к числам, отличным от 1 или 0. Соглашение: ноль означает ложь, а ненулевое означает истину .
Операторы присваивания
Существуют следующие операторы присваивания, поддерживаемые языком Euphoria —
оператор | Описание | пример |
---|---|---|
знак равно | Простой оператор присваивания, присваивает значения от правых операндов к левому операнду | C = A + B назначит значение A + B в C |
+ = | Добавить оператор присваивания И, он добавляет правый операнд к левому операнду и присваивает результат левому операнду | C + = A эквивалентно C = C + A |
знак равно | Вычитание И оператор присваивания, вычитает правый операнд из левого операнда и присваивает результат левому операнду | C — = A эквивалентно C = C — A |
знак равно | Оператор присваивания умножения И, умножает правый операнд на левый операнд и присваивает результат левому операнду | C * = A эквивалентно C = C * A |
знак равно | Оператор деления И присваивания, делит левый операнд на правый операнд и присваивает результат левому операнду | C / = A эквивалентно C = C / A |
знак равно | Оператор конкатенации | C & = {2} совпадает с C = {C} & {2} |
Примечание. Символ равенства «=», используемый в операторе присваивания, не является оператором, это всего лишь часть синтаксиса.
Разные операторы
Euphoria Language поддерживает несколько других операторов.
Оператор
Любые два объекта могут быть объединены с использованием оператора «&». Результатом является последовательность, длина которой равна сумме длин объединенных объектов.
Например —
#!/home/euphoria-4.0b2/bin/eui sequence a, b, c a = {1, 2, 3} b = {4} c = {1, 2, 3} & {4} printf(1, "Value of c[1] %d\n", c[1] ) printf(1, "Value of c[2] %d\n", c[2] ) printf(1, "Value of c[3] %d\n", c[3] ) printf(1, "Value of c[4] %d\n", c[4] )
Это дает следующий результат —
Value of c[1] 1 Value of c[2] 2 Value of c[3] 3 Value of c[4] 4
Приоритет операторов Euphoria
Приоритет оператора определяет группировку терминов в выражении. Это влияет на то, как оценивается выражение. Некоторые операторы имеют более высокий приоритет, чем другие; например, оператор умножения имеет более высокий приоритет, чем оператор сложения.
Например, х = 7 + 3 * 2
Здесь x назначено 13, а не 20, потому что оператор * имеет более высокий приоритет, чем +.
Следовательно, сначала он начинается с 3 * 2, а затем добавляется к 7.
Здесь операторы с самым высоким приоритетом появляются вверху таблицы, а операторы с самым низким — внизу. Внутри выражения операторы с более высоким приоритетом вычисляются первыми.