Situations often arise in practice when, for some exceptional reason, it is desirable to terminate a particular pass through a loop and continue immediately with the next repetition or cycle; this can be achieved in Fortran 90 by arranging that a CYCLE statement is executed at an appropriate point in the loop.
For example,
i = 0 DO i = i + 1 IF (i >= 50 .AND. i <= 59) CYCLE IF (i > 100) EXIT PRINT*, "I is", i END DO PRINT*, "Loop finished. I now equals", i
this will generate
I is 1 I is 2 .... I is 49 I is 60 .... I is 100 Loop finished. I now equals 101
Here CYCLE forces control to the innermost DO statement (the one that contains the CYCLE statement) and the loop begins a new iteration.
In the example, the statement:
IF (i >= 50 .AND. i <= 59) CYCLE
if executed, will transfer control to the DO statement. The loop must still contain an EXIT statement in order that it can terminate.
A CYCLE statement which is not within a loop is an error.
Return to corresponding overview page