WHILE <C> DO <S> ENDprüft wiederholt die Bedingung <C> und führt dann jeweils die Anweisungsfolge <S> aus; sobald <C> nicht erfüllt ist, wird die Schleife verlassen. Ist <C> bereits beim ersten Mal nicht erfüllt, so wird <S> gar nicht ausgeführt (abweisende Schleife).
Modula bietet aus Bequemlichkeitsgründen weitere Schleifenstrukturen an, obwohl die beschriebene WHILE-Schleife im Prinzip ausreichend ist; sie ist auch am einfachsten zu verifizieren.
Die Konstruktion
REPEAT <S> UNTIL <C>ist gleichbedeutend mit
<S> ; WHILE NOT <C> DO <S> ENDDie Anweisungsfolge <S> wird also auf jeden Fall mindestens einmal ausgeführt (annehmende Schleife).
Darüberhinaus gibt es noch die Zählschleife und die allgemeine Schleife.
Übrigens ist die Folge
WHILE <C> DO <S1> END ; <S2>in der Auswirkung gleichbedeutend zu einem Aufruf der parameterlosen (rekursiven) Prozedur:
Das Schleifenkonstrukt ist also prinzipiell überflüssig, sobald man rekursive Prozeduren zur Verfügung hat. Umgekehrt lassen sich nach demselben Schema gebaute "rechts-rekursive" Prozeduren in Schleifen umwandeln (Entrekursivierung).PROCEDURE Schleife; BEGIN IF <C> THEN <S1> ; Schleife ELSE <S2> END END Schleife;