Show 例子 5
优质
小牛编辑
130浏览
2023-12-01
运算符优先级确定表达式中的术语分组。 这会影响表达式的计算方式。 某些运算符的优先级高于其他运算符; 例如,乘法运算符的优先级高于加法运算符。
例如x = 7 + 3 * 2; 这里,x被赋值为13,而不是20,因为operator *的优先级高于+,所以它首先乘以3 * 2然后加到7中。
此处,具有最高优先级的运算符显示在表的顶部,具有最低优先级的运算符显示在底部。 在表达式中,将首先评估更高优先级的运算符。 下表表示Pascal运算符优先级 -
操作者 | 优先权 |
---|---|
~, not, | Highest |
*, /, div, mod, and, & | |
|, !, +, -, or, | |
=, <>, <, <=, >, >=, in | |
否则,然后 | Lowest |
请尝试以下示例以了解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