运算符
运算符 是要在一个或两个术语上执行的操作 (例如,添加) 的表示。 本主题描述了每个运算符(前缀运算符除外)如何作用于两个术语,这两个术语可以是符号、字符串、函数调用、中间结果或子表达式。 每个前缀运算符都对其后面的术语或子表达式执行操作。
与运算符字符相邻的空格 (和注释) 不会影响运算符; 因此,由多个字符构造的运算符可以具有嵌入的空格和注释。 此外,一个或多个空格 (它们出现在表达式中但与另一个运算符不相邻) 也充当运算符。
- 并置
- 算术
- 比较
- 逻辑
字符串连接运算符
连接运算符通过将第二个字符串附加到第一个字符串的右端,将两个字符串组合成一个字符串。 连接词可以有也可以没有中间的空格。
您可以使用 || 运算符强制连接,无需空格。
假设两个术语之间存在一个连接操作符,且中间没有其他操作符。 当两个术语在语法上不同,例如字面字符串和符号,或者仅以注释分隔时,就会出现这种情况。
| 运算符 | 描述 |
|---|---|
| (空白) | 用空格连接两个词 |
| || | 连续书写,中间不留空格 |
| (对接) | 连续书写,中间不留空格 |
一个语法上不同的术语的例子是:如果 Fred 的值为 37.4 ,则 Fred'%' 的值为 37.4% 。
如果变量 PETER 的值为 1 ,则 (Fred)(Peter) 的值为 37.41 。
在EBCDIC中,两个相邻的字符串(一个十六进制,一个文本) 'c1
c2'x'CDE' 的计算结果为 ABCDE 。
在下面的例子中,没有隐含的连接运算符,因此表达式无效。
Fred/* The NOT operator precedes Peter. */¬Peter
然而,下面的例子会产生一个邻接,计算结果为 37.40 。
(Fred)/* The NOT operator precedes Peter. */(¬Peter)
算术运算符
| 运算符 | 描述 |
|---|---|
| + | 添加 |
| - | 减 |
| * | 乘 |
| / | 划分 |
| % | 整数除法(除法并返回结果的整数部分) |
| // | 余数(除以并返回余数——不是模数,因为结果可能是负数) |
| ** | 幂(将数字提高到整数幂) |
| 前缀 - | 与减法相同: 0 - number |
| 前缀 + | 与添加方式相同: 0 + number 。 |
有关精度、有效数字的格式以及算术运算规则的详细信息,请参阅数字和算术运算。 如果算术结果以指数形式显示,则可能进行了四舍五入。
比较运算符
比较运算符用于比较两个术语,如果比较结果为真,则返回值 1 ,否则返回值 0 。
严格的比较运算符都有一个字符定义的运算符加倍。 == 、 \== 、 /== 和 ¬== 运算符用于测试两个字符串是否完全匹配。 两个字符串必须完全相同(逐个字符相同),且长度相同,才能被视为严格相等。 同样,严格的比较运算符(如 >> 或 << )会逐个字符进行比较,不会填充任何字符串。 两根琴弦的比较从左到右。 如果一个字符串比另一个字符串短,并且是另一个字符串的前导子串,那么它比另一个字符串更短。 严格的比较运算符也不会尝试对两个操作数进行数字比较。
对于所有其他比较运算符,如果两个操作数都是数字,则进行数字比较(忽略前导零,参见数字比较 )。 否则,这两个术语都将被视为字符串(忽略前导和尾随空格,然后用空格填充较短的字符串)。
字符比较和严格比较操作均区分大小写,而且两种操作的精确排序顺序取决于所使用的字符集。 例如,在EBCDIC环境中,小写字母在字母之前,数字 0 - 9 高于所有字母。
| 运算符 | 描述 |
|---|---|
| = | 如果条件相等(数值相等或经过填充等),则成立 |
| \=, ¬=, /= | 如果条件不等(=的倒数),则成立 |
| > | 大于 |
| < | 小于 |
| >< | 大于或小于(等于不等于) |
| <> | 大于或小于(等于不等于) |
| >= | 大于或等于 |
| \<, ¬< | 不小于 |
| <= | 小于或等于 |
| \>, ¬> | 不大于 |
| == | 如果条件严格相等(相同),则正确 |
| \==, ¬==, /== | 如果条件不完全相等(与==相反),则成立 |
| >> | 严格大于 |
| << | 严格来说,少于 |
| >>= | 严格大于或等于 |
| \<<, ¬<< | 严格来说,不能低于 |
| <<= | 严格小于或等于 |
| \>>, ¬>> | 严格小于 |
¬ )与反斜杠( \ )是同义词。您可以根据可用性和个人喜好交替使用这两个字符。 反斜杠可以出现在以下操作符中: \ (前缀不是)、 \= 、 \== 、 \< 、 \> 、 \<< 和 \>> 。逻辑(布尔)运算符
如果字符串为 0 ,则取值为false;如果字符串为 1 ,则取值为true。 逻辑运算符取一个或两个这样的值(不允许使用 0 或 1 以外的值),并返回 0 或 1 。
| 运算符 | 描述 |
|---|---|
| & | 和。 如果两个条件都满足,请返回 1 。 |
| | | 包含或。 如果任一条件成立,请返回 1 。 |
| && | 排他性或。 如果以下任一条件(非同时满足)成立,请发送电子邮件至 1 。 |
| 前缀: | 逻辑非。 否定; 1 变为 0 , 0 变为 1 。 |