数値式

数値式は数値計算を表し,数値演算対象と数値演算子から作られます。数値演算の評価の結果としては,1 つの数値が得られます。

数値という言葉には論理データも含まれます。これは,論理データは数値の文脈で使われるときには整数型データとして扱われるためです。.TRUE. の基本値は -1 で,.FALSE. の基本値は 0 です。Windows システムでは,コンパイラ・オプション /fpscomp:logicals を使用することで基本設定を変更することができます。

数値演算子は数値演算対象の値に対して行う計算方法を宣言します。結果として,スカラ数値か,スカラ数値を要素として持つ配列が得られます。以下に数値演算子を示します。

演算子 機能
** べき乗
* 乗算
/ 除算
+ 加算または単項正符号 (恒等)
- 減算または単項負符号 (符号反転)

単項演算子は 1 つの演算対象に作用します。2 項演算子は演算対象の組に作用します。正符号と負符号の演算子には単項演算子と 2 項演算子があります。単項演算子として使用される場合,正符号または負符号演算子は 1 つの演算対象の前に置かれ,それぞれ正の値 (恒等) または負の値 (符号反転) を表します。べき乗,乗算,および除算演算子は 2 項演算子です。

有効な数値演算は,プロセッサーが使用する算術によって定義された結果を持たなくてはなりません。たとえば,負の実数を実数でべき乗するという計算は無効です。

数値式は,各演算子に関連付けられた優先順位によって決定される順序で評価されます。次にこの優先順位を示します (「演算子の優先順位の要約」を参照)。

演算子 優先順位
** 最高
*/    .
単項の +-    .
2 項の +- 最低

同じ優先順位の演算子は,左から右の順序に評価されます。ただし,べき乗は右から左に評価されます。たとえば,A**B**CA**(B**C) のように評価されます。つまり,B**C が先に評価され,結果として得られた値を使って A のべき乗が計算されます。

通常,2 つの演算子を同時に使うことはできません。ただし Compaq Fortran では,第 2 の演算子が正符号または負符号である場合,2 つの演算子を続けて使えるようになっています。

次の例では,べき乗演算子が先に評価されます。これは,べき乗演算子が乗算演算子よりも優先されるためです。

	A**B*C(A**B)*C と評価される

次の例では,通常は,べき乗演算子が先に評価されると思われるでしょう。しかし,Compaq Fortran ではべき乗演算子と負符号演算子の組み合わせが許容されているため,べき乗演算子は負符号演算子の後に評価されます。

	A**-B*CA**(-(B*C)) と評価される

乗算演算子は負符号演算子よりも優先されるので,乗算演算子の方が先に評価されることに注意してください。

定数に対して複数の演算子が連続して使用されている場合,定数の前の単項正符号または単項負符号は,他の演算子と同じように扱われます。このために予期しない結果が生じることがあります。次の例では,乗算演算子が負符号演算子よりも優先されるので,乗算演算子の方が先に評価されます。

	X/-15.0*YX/-(15.0*Y) と評価される