Beide wirken auf die Schleife, in der sie stehen bzw. auf die Schleife,
die genannt wird;
EXIT [name] verläßt die Schleife,
CYCLE [name] überspringt die Befehle bis zum Schleifenende.
Als Beispiel soll ein Programm geschrieben werden, das auf mehrere Arten n! berechnet:
PROGRAM fakultaet ! Programmname !-------------------------- Deklarationsteil ---------------------------- IMPLICIT NONE ! fuer Programmsicherheit INTEGER :: n, fac ! Variablendefinition !-------------------------- Anweisungsteil ---------------------------- WRITE (*, ' (a) ' ,ADVANCE='no') 'n = ' ! kein Zeilenvorschub! READ (*,*) n ! Wert einlesen IF (n <= 0) THEN ! Plausibilitaetskontrolle WRITE (*,*) 'nicht definiert ! ' ! Meldung STOP ! Beende Programm ENDIF max = HUGE(fac) ! Bestimme max. Integerwert i = 1 ! Bestimme groeszte Zahl, fuer DO WHILE (max>1) ! die die Fakultaet berechnet i = i+1 ! werden kann max = max/i ! Verbesserungswuerdig! ENDDO IF (n > i) THEN ! Zahl ist zu grosz, n! WRITE (*,*) 'Ueberlauf ! maximal ' , i ! waere nicht mehr im Wertebereich STOP ! -> Abbruch ENDIF fac = 1 i = 0 DO ! REPEAT i = i+1 fac = fac*i if (i == n) EXIT ! UNTIL (i == n) ENDDO WRITE (*,*) 'n! = ' ,fac fac = 1 i = 1 DO WHILE (i < n) ! WHILE (i < n) i = i+1 fac = fac*i END DO ! END WHILE WRITE (*,*) 'n! = , ,fac fac = 1 i = 1 DO i = 2, n ! FOR i = 2,n,1 fac = fac*i ENDDO ! END FOR WRITE (*,*) ,n! = , ,fac END PROGRAM fakultaet