Dies ist ein arithmetic if
statement von FORTRAN 77. aus der Spezifikation 77 FORTRAN Angepasst (Hervorhebung von mir):
Die Form eines arithmetischen IF
Anweisung lautet:
IF (e) s1 , s2 , s2
Dabei gilt: e
ist ein ganzzahliger, reeller oder doppelter Genauigkeitsausdruck
s1
, s2
und s3
sind jeweils die Anweisungsetikette einer ausführbaren Anweisung, die in der gleichen Programmeinheit wie die arithmetische IF
-Anweisung erscheint. Dasselbe Anweisungslabel kann mehr als einmal in der gleichen arithmetischen IF
Anweisung erscheinen.
Ausführung einer arithmetischen IF
Anweisung bewirkt Auswertung des Ausdrucks e
durch eine Übertragung der Kontrolle verfolgt. Die Anweisung, die durch s1
, s2
oder s3
identifiziert wird, wird als nächstes ausgeführt, da der Wert e
kleiner als Null, gleich Null oder größer als Null ist.
Für das Beispiel in Frage, aus dem letzten Satz oben,
- Wenn
J1-3 < 0
Anweisung 20
- Wenn
J1-3 = 0
Anweisung 20 auch
- Wenn
J1-3 > 0
Anweisung ausgeführt werden, ausgeführt wird, wird 21 wird ausgeführt
bearbeiten: Ein moderner und viel besser lesbar Weg, dies wäre zu schreiben:
if (J1-3 > 0) J1 = J1 - 3
if (J2-3 > 0) J2 = J2 - 3
Es war nicht so seltsam in den frühen Tagen der FORTRAN - es _the only_ bedingte Anweisung zur Verfügung stand dann in der Sprache. –