ループ変化条件とループ不変条件は、ループの正しさを表すのに使われる。現実的には、ループ変化条件とは非負の初期値を持つ整数式である。変化条件はループを回るたびに減少しなければならないが、正しいループ実行の間は負の値になってはならない。ループ変化条件はループが終了するであろうことを保証するのに使われる。ループ不変条件は、ループを回る前と各反復において真でなければならない表明である。すなわち、ループが正しく終了するには終了条件とループ不変条件が共に真でなければならない。ループ不変条件は、ループ実行中にループの具体的属性を監視するのに使われる。Eiffelなどのプログラミング言語でループ変化条件とループ不変条件がサポートされている。Javaではアドオンである Java Modeling Language (JML) という仕様で同様のものをサポートしている。
ループ途中でループ処理を中断してループの先頭に戻り、次の繰り返しを開始したい場合がある。言語によってはこれを実現する continue とか skip、next といった文を用意している。その効果は最も内側のループ本体の実行を途中で止め、そのループの次の繰り返しを最初から行う。もしそのときの実行が最後の繰り返しであった場合、ループそのものを早期に終了させるのと同じことになる。
場合によっては無限にループする方がプログラムに適していることもあるし、何らかのエラーが発生するまでループするという場合もある。実際、イベント駆動型プログラム（サーバなど）はイベント制御ループを永遠に回り続け、プロセスが操作者によって終了させられたときだけループを停止する。ただし一般には、無限ループはプログラミングのミスで発生する。すなわち、ループ終了条件がループ内で全く発生しないことが原因で意図しない無限ループとなる。
C言語の for 文や Common Lisp の do のような汎用性の高い繰り返し要素を使えば、前述の各種ループもその他のループも実現できる。例えば、複数のコレクションを並列に回したりできる。もっとも、個別のループ構造がある場合、そちらを使った方がコードの目的をより明確に表現できるとも言える。
一部のプログラミング言語（例えば、Ada、D言語、Smalltalk、PHP、Perl、Object Pascal、Java、C#、Visual Basic、Ruby、Python、JavaScript、Fortran 95 およびそれ以降）では、明示的に配列や集合やコレクションの全要素に対応してループを回すことができる。   someCollection do: [:eachElement |xxx].      for Item in Collection do begin xxx end;   foreach (item; myCollection) { xxx }   foreach someArray { xxx }   foreach (someArray as $k => $v) { xxx }   Collection<String> coll; for (String s : coll) {}   foreach (string s in myStringCollection) { xxx }   $someCollection | ForEach-Object { $_ }      forall ( index = first:last:step... )
条件（条件式）が指定されており、その式を評価した結果が真であれば（あるいは、偽であれば）ループを繰り返す。条件のテストがループの先頭にある場合と最後にある場合がある。前者の場合、ループ本体を全く実行しないことがありうるが、後者の場合は少なくとも1回はループ本体を実行する。   DO WHILE (test)           repeat        xxx                       xxx    END DO                    until test;   while (test) {            do       xxx                       xxx   }                         while (test);コントロールブレイクは通常のループ内で値の変化を検出する手段として使われ、値のグループの処理のトリガーとなる。ループ内で変化する値（群）をキーで監視し、可変な値に関連したグループイベント処理へとプログラムのフローを変換する。   DO UNTIL (End-of-File)      IF new-zipcode <> current-zipcode         display_tally(current-zipcode, zipcount)                  current-zipcode = new-zipcode         zipcount = 0      ENDIF            zipcount++   LOOP
ループはソースコード上で1回だけ書かれた文の並びを連続して複数回実行することである。ループの「中」のコード（本体と呼び、下記の例では xxx で表されている）は指定回数実行されるか、指定されたコレクションの各要素に対応して実行されるか、何らかの条件が成立するまで繰り返し実行される。無限に繰り返されることもある。SchemeやHaskellのような関数型言語では、ループより再帰呼び出しや不動点コンビネータを使用してプログラミングするのが普通である。末尾再帰は再帰呼び出しの特殊ケースであり、容易にループに変換できる（正確には「末尾呼び出しは容易にジャンプに変換できる。末尾再帰は末尾呼び出しの対象が自身になっているという特殊ケースであり、ループに変換できる」）。
ここではOCamlの例を挙げる。match fruit with| "apple" -> cook pie| "coconut" -> cook dango_mochi| "banana" -> mix;;
女性問題を起こして無職となっていた『今井 光』は就職活動をしていた。突然歯が痛み訪れた歯科医院の待合室で偶然にも自分と同姓の若い女性『今井 みどり』と出会う。診療中にみどりが気絶してしまったため、付き添いと勘違いされた光はみどりを自宅まで送り届ける羽目になった。しかし、着いたそこは今井歯科医院だった。今井歯科医院から出てきたのはみどりの姉で歯科医師と受付の姉妹。お礼としてし忘れていた歯の治療を無料でして貰ったものの、無料なのは今日だけで今後の治療代として見積もられた10万円という額は無職の光に払えるものではなかった。姉妹はある条件で治療費を全額無料にするという。その条件とは、この家での今井姉妹との同居だった。今井姉妹も家主で今井歯科医院の医院長と同居しており、医院長は不在がちなために近所に乗っ取りと誤解されないよう医院長の親戚として住んでもらいたいとのことだった。自宅が歯医者でありながら他の歯科医院に行くことに加え言動もおかしなみどりなど、美人揃いであるもののこの姉妹には関わってはいけないと光は直感していた。女性はもう懲りた光は一度は断ったのだが、アパートの家賃滞納などで同居することとなった。かくして、一つ屋根の下で歯科医師で長女の珠子、劇団をやっている次女の羽子、大学生で三女の葉子、家事をやっている四女のみどりとの奇妙な同居生活が始まった。しかし、光の人生を目茶目茶にしてやるとして、しつこく光を追い掛け回している男が光の前に現れた。