ある条件が真か偽の場合だけでなく、その条件が成り立つ時、さらに別の条件が
成り立つかどうか多重の条件分岐をしたい時がある。例えば、2次方程式で最初
の係数がでは1次方程式の問題に帰着し、
では判別式の正負に応
じて処理の仕方を変えたい時である。この時には、else if 文を使う。
if then
else if
then
else
end if
[説明] 条件 が正しければ実行文(のグループ)
を行う。条件
が正しくない時でしかも条件
が成り立つ時は実行文(のグループ)
を行う。条件
,
が両方とも成立しない場合は実行文(のグループ)
を行う。end if 文は if 構文の終りを示している。
例:
if (abs(d) <= 1.0e-6) then write(*,*) "juukon" else if (d < 0.0) then write(*,*) "d negative" else write(*,*) sqrt(d),-sqrt(d) end if
注意:実数型の場合、機械精度の限界のため d == 0.0 といった判定は無意味で
ある。従って d の絶対値が十分小さい時、0 とみなして代用する(これは2つの
実数型変数が等しいという判定でも必要な配慮である)。また、ここで
1.0e-6 は
を意味する。