ある条件が真か偽の場合だけでなく、その条件が成り立つ時、さらに別の条件が 成り立つかどうか多重の条件分岐をしたい時がある。例えば、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 は を意味する。