goto文の闇 †go to 文は極力使用を避けたいと基本方針で書いた.詳細を以下に. goto 文を使うことの欠点 †
以上の理由より,goto 文は避けたい.改善例を以下に示す. (1) if, go to~continue (ループの末尾)は cycle で代用 †まず,do ループの結語には,enddo と continue の2通りがある. !!例1 do I=IS,IE ...(何か).... if(hoge) cycle .... enddo !!例2 do 501 I=IS,IE ...(何か).... if(hoge) goto 501 .... 501 continue 人によっては,例2の方が見やすいかも.しかし,continue は do 文の結語以外にも利用できるので,他と混同される可能性がある. (2)if,go to~continue (ループの末尾以外)は if(not), then で代用 †goto の先が do 文の終端でない場合には,if(hoge) then → endif で代用する. !(修正前) if(hoge) goto 501 ...(処理A).. 501 continue ...(処理B)... !(修正後) if (not(hoge))then ...(処理A).. endif ...(処理B)... (3)文番号を使用する方が見やすい場合もあるけれども… †なるべくインデントで代用したい. |