<<< zur Fortran-Startseite | |
<< FORTRAN 77 | Fortran 90/95 >> |
< Stringoperationen | Standardfunktionen > |
GOTO
GOTO
bewirkt einen Sprung zu einer bestimmten Anweisungsnummer.
Beispiel:
0 . | 1 . 2 . 3 . 4 . 5 . 6 . 7 | . 8 12345678901234567890123456789012345678901234567890123456789012345678901234567890 |
PROGRAM BSP GOTO 100 WRITE (*,*) 'Hallo' 100 WRITE (*,*) 'Welt' C Ausgabe: Welt END |
12345678901234567890123456789012345678901234567890123456789012345678901234567890 0 . | 1 . 2 . 3 . 4 . 5 . 6 . 7 | . 8 |
CONTINUE
CONTINUE
ermöglicht bei Anweisungsnummern eine „leere“ Anweisung.
Beispiel:
0 . | 1 . 2 . 3 . 4 . 5 . 6 . 7 | . 8 12345678901234567890123456789012345678901234567890123456789012345678901234567890 |
PROGRAM BSP GOTO 100 WRITE (*,*) 'Hallo' 100 CONTINUE C keine Ausgabe END |
12345678901234567890123456789012345678901234567890123456789012345678901234567890 0 . | 1 . 2 . 3 . 4 . 5 . 6 . 7 | . 8 |
Bedingtes GOTO
Beim bedingten GOTO
ist in Abhängigkeit von einer Integer-Variablen der Sprung zu einer bestimmten Anweisungsnummer möglich.
Beispiel: Eine „Switch“-Verzweigung
0 . | 1 . 2 . 3 . 4 . 5 . 6 . 7 | . 8 12345678901234567890123456789012345678901234567890123456789012345678901234567890 |
PROGRAM BSP INTEGER I I=2 GOTO (100, 200, 300), I 100 WRITE (*,*) 'Hallo 1' GOTO 1000 200 WRITE (*,*) 'Hallo 2' GOTO 1000 300 WRITE (*,*) 'Hallo 3' 1000 CONTINUE C Ausgabe: Hallo 2 END |
12345678901234567890123456789012345678901234567890123456789012345678901234567890 0 . | 1 . 2 . 3 . 4 . 5 . 6 . 7 | . 8 |
IF-Verzweigungen
Der IF-Einzeiler
IF (logischer ausdruck) anweisung |
Beispiel:
0 . | 1 . 2 . 3 . 4 . 5 . 6 . 7 | . 8 12345678901234567890123456789012345678901234567890123456789012345678901234567890 |
PROGRAM BSP INTEGER I I=2 IF (I .EQ. 2) WRITE (*,*) 'Hallo' C Ausgabe: Hallo END |
12345678901234567890123456789012345678901234567890123456789012345678901234567890 0 . | 1 . 2 . 3 . 4 . 5 . 6 . 7 | . 8 |
IF-THEN
IF (logischer ausdruck) THEN anweisungsblock END IF |
Beispiel:
0 . | 1 . 2 . 3 . 4 . 5 . 6 . 7 | . 8 12345678901234567890123456789012345678901234567890123456789012345678901234567890 |
PROGRAM BSP INTEGER I I=2 IF (I .EQ. 2) THEN WRITE (*,*) 'Hallo' END IF C Ausgabe: Hallo END |
12345678901234567890123456789012345678901234567890123456789012345678901234567890 0 . | 1 . 2 . 3 . 4 . 5 . 6 . 7 | . 8 |
IF-THEN-ELSE
IF (logischer ausdruck) THEN if-anweisungsblock ELSE else-anweisungsblock END IF |
Beispiel:
0 . | 1 . 2 . 3 . 4 . 5 . 6 . 7 | . 8 12345678901234567890123456789012345678901234567890123456789012345678901234567890 |
PROGRAM BSP INTEGER I I=333 IF (I .GE. 444) THEN WRITE (*,*) 'Hallo' ELSE WRITE (*,*) 'Hola' END IF C Ausgabe: Hola END |
12345678901234567890123456789012345678901234567890123456789012345678901234567890 0 . | 1 . 2 . 3 . 4 . 5 . 6 . 7 | . 8 |
ELSE-IF
IF (logischer ausdruck 1) THEN if-anweisungsblock 1 ELSE IF (logischerAusdruck 2) THEN if-anweisungsblock 2 ELSE IF (logischerAusdruck n) THEN if-anweisungsblock n ELSE else-anweisungsblock END IF |
0 . | 1 . 2 . 3 . 4 . 5 . 6 . 7 | . 8 12345678901234567890123456789012345678901234567890123456789012345678901234567890 |
PROGRAM BSP INTEGER I I = 2 IF (I .EQ. 1) THEN WRITE (*,*) 'I ist eins' ELSE IF (I .EQ. 2) THEN WRITE (*,*) 'I ist zwei' ELSE WRITE (*,*) 'Ich weiß nicht was I ist' END IF C Ausgabe: I ist zwei END |
12345678901234567890123456789012345678901234567890123456789012345678901234567890 0 . | 1 . 2 . 3 . 4 . 5 . 6 . 7 | . 8 |
DO-Schleifen
Die DO
-Schleife (Zählschleife) ist die einzige Schleife die FORTRAN 77 standardmäßig kennt.
DO nr zählvariable = startwert, endwert [, schrittweite] anweisungsblock nr CONTINUE |
Beispiel:
0 . | 1 . 2 . 3 . 4 . 5 . 6 . 7 | . 8 12345678901234567890123456789012345678901234567890123456789012345678901234567890 |
PROGRAM BSP INTEGER I DO 100 I = 1, 10 WRITE (*,*) I 100 CONTINUE C Zeilenweise Ausgabe der Zahlen 1 bis 10 END |
12345678901234567890123456789012345678901234567890123456789012345678901234567890 0 . | 1 . 2 . 3 . 4 . 5 . 6 . 7 | . 8 |
Weitere Schleifen
Da FORTRAN 77 keine weiteren Schleifen kennt, müssen diese mit Hilfe einer IF-Verzweigung und einem GOTO
-Befehl nachgebildet werden. Prominente Beispiele aus anderen Programmiersprachen sind die While-Schleife und die Do-While-Schleife.
While-Schleife (kopfgesteuerte Schleife)
Beispiel:
0 . | 1 . 2 . 3 . 4 . 5 . 6 . 7 | . 8 12345678901234567890123456789012345678901234567890123456789012345678901234567890 |
PROGRAM BSP INTEGER I I=0 10 IF(I .LT. 5) THEN WRITE (*,*) I I = I + 1 GOTO 10 END IF C Die Zahlen 0 bis 4 werden ausgegeben END |
12345678901234567890123456789012345678901234567890123456789012345678901234567890 0 . | 1 . 2 . 3 . 4 . 5 . 6 . 7 | . 8 |
Do-While-Schleife (fußgesteuerte Schleife)
Beispiel:
0 . | 1 . 2 . 3 . 4 . 5 . 6 . 7 | . 8 12345678901234567890123456789012345678901234567890123456789012345678901234567890 |
PROGRAM BSP INTEGER I I=6 10 CONTINUE WRITE (*,*) I I = I + 1 IF (I .LT. 5) GOTO 10 C Die Zahl 6 wird ausgegeben END |
12345678901234567890123456789012345678901234567890123456789012345678901234567890 0 . | 1 . 2 . 3 . 4 . 5 . 6 . 7 | . 8 |
Implizite Schleife
Bei Eingabe oder Ausgabe ist die Angabe einer impliziten Schleife möglich.
Beispiel:
0 . | 1 . 2 . 3 . 4 . 5 . 6 . 7 | . 8 12345678901234567890123456789012345678901234567890123456789012345678901234567890 |
PROGRAM BSP INTEGER I WRITE (*,*) ('Hallo', I = 1, 10) C Ausgabe: HalloHalloHalloHalloHalloHalloHalloHalloHalloHallo END |
12345678901234567890123456789012345678901234567890123456789012345678901234567890 0 . | 1 . 2 . 3 . 4 . 5 . 6 . 7 | . 8 |
STOP
Die STOP
-Anweisung beendet das Programm.
Beispiel:
0 . | 1 . 2 . 3 . 4 . 5 . 6 . 7 | . 8 12345678901234567890123456789012345678901234567890123456789012345678901234567890 |
PROGRAM BSP WRITE (*,*) 'Vor Stop-Statement' STOP WRITE (*,*) 'Nach Stop-Statement' C Ausgabe: Vor Stop-Statement END |
12345678901234567890123456789012345678901234567890123456789012345678901234567890 0 . | 1 . 2 . 3 . 4 . 5 . 6 . 7 | . 8 |
<<< zur Fortran-Startseite | |
<< FORTRAN 77 | Fortran 90/95 >> |
< Stringoperationen | Standardfunktionen > |