「条件分岐と繰り返しのあれそれ」
能書き
条件分岐と繰り返しは基本的なことさえ押さえれば、あとは知恵と工夫でプログラミングは出来ます。が、見た目のすっきりした賢そうなプログラムを書けるなら、それに越したことはありません。
多用を勧めるものではありませんが、テクニックを知っておくと良いでしょう。
条件分岐のあれそれ
省略if文
if (条件式) 命令if文で行う命令が1つだけの場合、then, end ifを省略することが出来る。
if文が連続して出てくる細かい処理などは、省略すると見た目がすっきりする。
select case文
select case(変数) case(値1) {処理1} [case(値2) {処理2}] [...] [case default {処理 default}] end select『変数』の値が各caseに等しい場合、その処理が実行される。
該当が無い場合、defaultの処理が実行される。
Fortranとしては変則的な文法だが、if文を使うより簡潔に書ける。文字列もしくは整数変数によるスイッチングに使うと便利。
do文のあれそれ
無限ループ
do文の繰り返し条件を省略すると、無限ループになる。do {処理} end do当然終わらないので、
if(終了条件) exitで明示的に終わらせる必要がある。
do while文で表しにくい複雑なループに使う。
ループ構造名
do文に名前を付けることが出来る。ループ構造の名前: do [繰り返し条件] {処理} end do ループ構造の名前ただ名前が付いて嬉しいだけではなく、
exit ループ構造の名前 cycle ループ構造の名前を使うことによって多重ループの柔軟な動作制御が可能になる。
最初はdoの前でコロン付き、最後はdoの後でコロン無し。ややこしい。
使用例
多重ループからの脱出loop1: do {処理} loop2: do {処理} do {処理} if(条件1) exit loop1 if(条件2) cycle loop2 end do end do loop2 end do loop1名前を付けない場合、exit, cycleは最内ループのみが対象となるため、多重ループを抜けるには各段階にexit文を入れる必要があります。