ループ (プログラミング)
この記事では、コンピュータプログラムにおけるループ () について説明する。ループとは、特定の条件下において特定の処理を繰り返すこと、あるいはそのように作られた制御構造のことを言う。日本語の名詞として「繰り返し」とも。特定の条件が成立している限り、特定の処理を繰り返し何度でも実行する。逆に言えば、条件が成立しなくなったときに、処理を中止する。
ループの、特別な形あるいは最も一般的な形として、無条件に繰り返す無限ループがある。詳細は無限ループの記事を参照。
ループは、繰り返しを継続するかどうかを判断するための条件式（反復条件）を持つ。反復条件がループ構造の始まりに置かれる場合、そのようなループ構造のことを前判定ループと呼ぶ。一方、反復条件がループ構造の後ろに置かれる場合、これを後判定ループと呼ぶ。しかし結局のところ以上のような分類は、プログラミング言語の発展の初期に、まず最初にどちらか片方だけが作られ、後から別のものが追加されたという歴史的由来に過ぎず、ループの「内側」のどこかに「ループの脱出」がある、という構造に一般化できるので前判定/後判定という分類は本質ではない（実際に、たとえばVisual Basicの「Do...Loop 文」は、どの場合にも対応するよう対称的に作られている）。単にその「内側のどこか」が、その前端か後端にある場合が多い、というだけである。
むしろ、ループの先頭で何らかのデータをファイルから読み込んで計算を開始し、その途中で、繰り返しのその回を打ち切り次の繰り返しに進む、あるいは繰り返しを終わる、といったこともよくあり（ダイクストラは、最後が途中で終わる場合を「n+1/2回の反復」と名づけた）、さらには入れ子になった内側のループの中から外側のループを終わる、というような処理にどう対応するか、が思案のしどころである。
関数型プログラミングのスタイルでは、再帰によってループを扱うことが多い。単純な再帰呼び出しはスタックオーバーフローを引き起こす可能性があるが、末尾再帰はコンパイラ最適化によってループに展開される。