运算符优先级
当表达式包含多个运算符时,将按预定顺序计算每一部分,这个顺序被称为运算符优先级。可以使用括号越过这种优先级顺序,强制首先计算表达式的某些部分。运算时,总是先执行括号中的运算符,然后再执行括号外的运算符。但是,在括号中仍遵循标准运算符优先级。
当表达式包含多种运算符时,首先计算算术运算符,然后计算比较运算符,最后计算逻辑运算符。所有比较运算符的优先级相同,即按照从左到右的顺序计算比较运算符。
算术运算符的优先级和使用说明如下所示:
算术运算符
| ||||
描述
|
符号
|
功能
|
参数
|
说明
|
求幂
|
^
|
计算数的指数次方。
result = number^exponent
|
Result任意数值变量。number任意数值表达式。exponent任意数值表达式。
|
仅当 exponent 参数为整数时,Number 参数才可为负值。如果单个表达式中有多个指数运算,则 ^ 运算符按从左到右的顺序执行。
如果 number 或 exponent 为 Null 表达式,则 result 值也为 Null。
|
负号
|
-
|
计算两个数值的差或表示数值表达式的负值。
语法 1:result = number1-number2
语法 2:-number
|
result任意数值变量。number任意数值表达式。number1任意数值表达式。number2任意数值表达式。
|
如果一个或两个表达式都是 Null 表达式,则 result 为 Null。如果某个表达式为 Empty,则按 0 值处理。
|
乘
|
*
|
两个数相乘。
result = number1*number2
|
result任意数值变量number1任意数值表达式。number2任意数值表达式。
|
如果一个或两个表达式为 Null 表达式,result 为 Null。如果一个表达式为 Empty,则按 0 处理。
|
除
|
/
|
两个数值相除并返回以浮点数表示的结果。
result = number1/number2
|
result任意数值变量。number1任意数值表达式。number2任意数值表达式。
|
如果一个或两个表达式为 Null 表达式,result 为 Null。任何表达式为 Empty 时,则按 0 处理。
|
整除
|
/
|
两个数相除并返回以整数形式表示的结果。
result = number1/number2
|
result任意数值变量。number1任意数值表达式。number2任意数值表达式。
|
在除法操作前,数值表达式四舍五入为 Byte、Integer 或 Long 子类型表达式。
如果任何表达式为 Null,result 也是 Null。任何表达式为 Empty 时,则按 0 处理。
|
求余
|
Mod
|
两个数值相除并返回其余数。
result = number1 Mod number2
|
result任意数值变量。number1任意数值表达式。number2任意数值表达式。
|
模数或余数。运算符执行 number1 除以 number2 操作(浮点数四舍五入为整数)并只返回余数作为 result。例如,在下面的表达式中, A(为 result)等于 5。
A = 19 Mod 6.7如果任一表达式为 Null,则 result 也为 Null。任一表达式为 Empty 时按 0 来处理。
|
加
|
+
|
计算两个数之和。
result = expression1 + expression2
|
result任意数值变量。expression1任意表达式。expression2任意表达式。
|
虽然也可以使用 + 运算符连接两个字符串,但是您仍应使用 & 运算符进行字符串的连接以避免混淆,提供易理解的代码;
这是因为在使用 + 运算符时,有可能无法确定是做加法还是做字符串连接。
表达式的基本子类型决定了 + 运算符所做的操作。
如果两个表达式都是数值,则相加
如果两个表达式都是字符串,则连接
|
减
|
-
|
计算两个数值的差或表示数值表达式的负值。语法 1
result = number1-number2语法 2
-number
|
result任意数值变量。number任意数值表达式。number1任意数值表达式。number2任意数值表达式。
|
在语法 1 中,- 运算符是用于计算两个数值差值的算术减法运算符。在语法 2 中,- 运算符用作单目求反运算符,表示表达式的负数
如果一个或两个表达式都是 Null 表达式,则 result 为 Null。如果某个表达式为 Empty,则按 0 值处理。
|
字符串连接
|
&
|
强制两个表达式进行字符串连接。
result = expression1 & expression2
|
result任意变量。expression1任意表达式expression2任意表达式。
|
任一 expression 不是字符串时,它将被转换为 String 子类型。如果两个表达式都为 Null,result 也为 Null。然而,如果仅有一个 expression 为 Null,则它和其他表达式连接时,按零长度字符串("") 处理。任何表达式为 Empty 时也按零长度字符串处理。
|