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
pascal_operators.htm
廣告
© . All rights reserved.