Pascal - 运算符优先级
运算符优先级决定表达式中术语的分组。 这会影响表达式的计算方式。 某些运算符的优先级高于其他运算符; 例如,乘法运算符的优先级高于加法运算符。
例如x = 7 + 3 * 2; 此处,x 被分配为 13,而不是 20,因为运算符 * 的优先级高于 +,因此它首先乘以 3*2,然后添加到 7。
在这里,优先级最高的运算符出现在表的顶部,优先级最低的运算符出现在底部。 在表达式中,将首先计算优先级较高的运算符。 下表表示 Pascal 运算符优先级 −
| 运算符 | 优先级 |
|---|---|
| ~, not, | 最高 |
| *, /, div, mod, and, & | |
| |, !, +, -, or, | |
| =, <>, <, <=, >, >=, in | |
| or else, and then | 最低 |
尝试以下示例来了解 Pascal 中可用的运算符优先级 −
program opPrecedence;
var
a, b, c, d : integer;
e: real;
begin
a := 20;
b := 10;
c := 15;
d := 5;
e := (a + b) * c / d; (* ( 30 * 15 ) / 5 *)
writeln('Value of (a + b) * c / d is : ', e:3:1 );
e := ((a + b) * c) / d; (* (30 * 15 ) / 5 *)
writeln('Value of ((a + b) * c) / d is : ' , e:3:1 );
e := (a + b) * (c / d); (* (30) * (15/5) *)
writeln('Value of (a + b) * (c / d) is : ', e:3:1);
e := a + (b * c) / d; (* 20 + (150/5) *)
writeln('Value of a + (b * c) / d is : ' , e:3:1 );
end.
当上面的代码被编译并执行时,会产生以下结果:
Value of (a + b) * c / d is : 90.0 Value of ((a + b) * c) / d is : 90.0 Value of (a + b) * (c / d) is : 90.0 Value of a + (b * c) / d is : 50.0

