複数早期脱出と入れ子ループからの脱出
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/07/23 09:22 UTC 版)
「制御構造」の記事における「複数早期脱出と入れ子ループからの脱出」の解説
これは 1974年、Zahn が提案した。ここではそれを若干修正したものを示す。 exitwhen EventA or EventB or EventC; xxx exits EventA: actionA EventB: actionB EventC: actionC endexit; exitwhen は xxx 内で発生しうるイベントを指定するのに使い、イベントはイベント名を文として使用すると発生する。イベントが発生すると対応するアクションが実行され、その後 endexit 後の処理に移る。この制御構造はある状況を識別する部分と、その状況でとるべきアクションを明確に区別することができる。 exitwhen は C++ 言語の try/catch 構造と概念的によく似ているが、サブルーチン呼び出しを超えたり任意の値を渡したりしないので、より効率的と思われる。また、コンパイラは指定されたイベントが全て発生する可能性があり、それらにアクションが対応しているかどうかをチェックできる。 以下の単純な例は2次元配列から特定の要素を取り出すものである。 exitwhen found or missing; for I := 1 to N do for J := 1 to M do if table[I,J] = target then found; missing; exits found: print ("item is in table"); missing: print ("item is not in table"); endexit;
※この「複数早期脱出と入れ子ループからの脱出」の解説は、「制御構造」の解説の一部です。
「複数早期脱出と入れ子ループからの脱出」を含む「制御構造」の記事については、「制御構造」の概要を参照ください。
- 複数早期脱出と入れ子ループからの脱出のページへのリンク