ループからの早期脱出
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/07/23 09:22 UTC 版)
詳細は「break文」を参照 カウント制御型ループを使って配列上のデータを検索している際に、必要な要素を見つけたら即座にループから抜け出したいという状況がありうる。プログラミング言語によっては break とか exit、last といった文を用意していて、現在のループを即座に抜けてそのループの直後の文に制御を転送する機能を持っている。サブルーチン内のループで return を使えば、入れ子になったループからも脱出することになる。多次元配列を入れ子になったループで検索している場合、若干複雑になる(「提案された制御構造」の章参照)。 以下の例はAdaを使ったものである。Ada は「ループからの早期脱出」と「途中にテストのあるループ」の両方をサポートしている。どちらもよく似ているが、コードを比較すればその違いがわかる。いずれにしても、汎用の制御構造であるif文との組み合わせによるものか、専用の制御構造によるものか、という違いでしかない。 with Ada.Text IO;with Ada.Integer Text IO;procedure Print_Squares is X : Integer;begin Read_Data : loop Ada.Integer Text IO.Get(X); exit Read_Data when X = 0; Ada.Text IO.Put (X * X); Ada.Text IO.New_Line; end loop Read_Data;end Print_Squares; Python は break でループを早期脱出したか否かに依存して、実行されるブロックを指定できる。以下はその例である。 for n in set_of_numbers: if isprime(n): print "Set contains a prime number" breakelse: print "Set did not contain any prime numbers" Python では for 文も while 文もこのような else 節を使うことができる。else 節は早期脱出が発生しなかったときのみ実行される。
※この「ループからの早期脱出」の解説は、「制御構造」の解説の一部です。
「ループからの早期脱出」を含む「制御構造」の記事については、「制御構造」の概要を参照ください。
- ループからの早期脱出のページへのリンク