読み方 : たじゅうループ
多重ループ【nested loop】
概要

多くのプログラミング言語はfor文やwhile文といったループ構文を備えており、指定した条件が満たされる間、一定の処理を繰り返し実行できる。多重ループはこのループ構文を入れ子(ネスト)にしたもので、外側のループが1回進むたびに内側のループが全回数分実行される。
ループが二重の場合、外側をn回、内側をm回とすると、最も内側の処理はn×m回実行される。三重であれば外側からn回、m回、l回のとき、最内部の処理はn×m×l回となる。ネストが深くなるほど実行回数は乗算的に増大する。
多重ループは二次元配列の全要素の走査、行列演算、画像のピクセル単位の処理、格子状マップデータの制御など、多次元的な構造で表されるデータを扱う場面で用いられる。各階層のループをそれぞれの軸に対応させることで、データを体系的に処理できる。計算量の観点では、打ち切り処理がなければ二重ループでO(n²)、三重ループでO(n³)のオーダーになり、大規模データを扱う際は処理時間の増大やCPU負荷の要因となりやすい。
多重ループの途中で処理を中断したい場合、break文は直近のループのみを抜けるため、外側のループを一度に抜け出すには工夫が必要となる。言語によってはラベル付きbreak(Javaなど)やgoto文、フラグ変数の利用、あるいはループ処理を関数に切り出してreturn文で抜ける方法などが用いられる。また、ネストが深くなるほどコードの可読性が低下しやすいため、階層を浅く保つ設計や、効率的なアルゴリズムへの置き換えが検討されることがある。
(2026.6.16更新)