运算符
优质
小牛编辑
135浏览
2023-12-01
Euphoria提供了丰富的操作符来操作变量。 我们可以将所有的Euphoria运算符划分为以下几组 -
- 算术运算符
- 关系运算符
- 逻辑运算符
- 分配运算符
- 其它运算符
算术运算符 (The Arithmetic Operators)
算术运算符在数学表达式中的使用方式与它们在代数中使用的方式相同。 下表列出了算术运算符。 假设整数变量A保持10,变量B保持20然后 -
操作者 | 描述 | 例 |
---|---|---|
+ | 添加 - 在运算符的任一侧添加值 | A + B将给出30 |
- | 减法 - 从左手操作数中减去右手操作数 | A - B将给-10 |
* | 乘法 - 将运算符两侧的值相乘 | A * B将给出200 |
/ | 除法 - 用右手操作数除左手操作数 | B/A会给2 |
+ | 一元加 - 这对变量值没有影响。 | + B给出20 |
- | 一元减号 - 这会创建给定变量的负值。 | -B gives -20 |
关系运算符
Euphoria语言支持以下关系运算符。 假设变量A保持10,变量B保持20然后 -
操作者 | 描述 | 例 |
---|---|---|
= | 检查两个操作数的值是否相等,如果是,则条件变为真。 | (A = B)不是真的。 |
!= | 检查两个操作数的值是否相等,如果值不相等则条件变为true。 | (A!= B)是真的。 |
> | 检查左操作数的值是否大于右操作数的值,如果是,则条件变为真。 | (A> B)不是真的。 |
< | 检查左操作数的值是否小于右操作数的值,如果是,则条件变为真。 | (A < B) 为真 |
>= | 检查左操作数的值是否大于或等于右操作数的值,如果是,则条件变为真。 | (A> = B)不是真的。 |
<= | 检查左操作数的值是否小于或等于右操作数的值,如果是,则条件变为真。 | (A <= B)是真的。 |
逻辑运算符 (The Logical Operators)
下表列出了逻辑运算符。 假设布尔变量A保持1而变量B保持0然后 -
操作者 | 描述 | 例 |
---|---|---|
and | 称为逻辑AND运算符。 如果两个操作数都不为零,那么条件变为真。 | (A和B)是假的。 |
or | 称为逻辑OR运算符。 如果两个操作数中的任何一个非零,则条件变为真。 | (A或B)是真的。 |
xor | 称为逻辑XOR运算符。 如果其中一个为真,则条件为真,如果两个操作数都为真或假,则条件变为假。 | (A xor B)是真的。 |
not | 被称为逻辑NOT运算符否定结果。 使用此运算符,true变为false,false变为true | not(B) is true. |
您还可以将这些运算符应用于1或0以外的数字。约定为:零表示false,非零表示true 。
分配运算符
Euphoria语言支持以下赋值运算符 -
操作者 | 描述 | 例 |
---|---|---|
= | 简单赋值运算符,将右侧操作数的值分配给左侧操作数 | C = A + B将A + B的值分配给C |
+= | 添加AND赋值运算符,它将右操作数添加到左操作数并将结果赋给左操作数 | C + = A等于C = C + A. |
-= | 减去AND赋值运算符,它从左操作数中减去右操作数,并将结果赋给左操作数 | C - = A相当于C = C - A. |
*= | 乘以AND赋值运算符,它将右操作数与左操作数相乘,并将结果赋值给左操作数 | C * = A等于C = C * A. |
/= | 除法AND赋值运算符,它将左操作数除以右操作数,并将结果赋值给左操作数 | C/= A相当于C = C/A. |
&= | 连接运算符 | C&= {2}与C = {C}&{2}相同 |
Note - 赋值语句中使用的等号'='不是运算符,它只是语法的一部分。
混合操作符 (Miscellaneous Operators)
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
幸福操作者的优先权
运算符优先级确定表达式中的术语分组。 这会影响表达式的计算方式。 某些运算符的优先级高于其他运算符; 例如,乘法运算符的优先级高于加法运算符。
例如,x = 7 + 3 * 2
这里,x被赋值为13,而不是20,因为operator *的优先级高于+。
因此它首先以3 * 2开始,然后加到7中。
此处具有最高优先级的运算符显示在表的顶部,具有最低优先级的运算符显示在底部。 在表达式中,首先计算更高优先级的运算符。
类别 | 操作者 | 关联性 |
---|---|---|
Postfix | function/type calls | |
Unary | + - ! 不 | 右到左 |
Multiplicative | */ | 左到右 |
Additive | + - | 左到右 |
Concatenation | & | 左到右 |
Relational | >> = << = | 左到右 |
Equality | =!= | 左到右 |
Logical AND | and | 左到右 |
Logical OR | or | 左到右 |
Logical XOR | xor | 左到右 |
Comma | , | 左到右 |