Es muss sein , einige Möglichkeit zu sagen , wo der Zustand endet und der Zweig beginnt. Dafür gibt es viele verschiedene Möglichkeiten.
In einigen Sprachen gibt es kein conditionals überhaupt , zB in Smalltalk, Selbst, Neusprech, Io, Ioke, Seph und Fancy. Die bedingte Verzweigung wird einfach wie jede andere Methode als normale Methode implementiert. Die Methode wird auf Booleschen Objekten implementiert und auf einem Booleschen Objekt aufgerufen. Auf diese Weise ist die Bedingung einfach der Empfänger der Methode, und die beiden Zweige sind zwei Argumente, z. B. in Smalltalk:
aBooleanExpression ifTrue: [23] ifFalse: [42].
Falls Sie mit Java besser vertraut sind, entspricht dies dem Folgenden:
aBooleanExpression.ifThenElse(() -> 23, () -> 42);
In der Lisp-Sprachfamilie ist die Situation ähnlich: Bedingungen sind nur normale Funktionen (eigentlich Makros) und das erste Argument ist die Bedingung, das zweite und dritte Argument sind die Zweige, also sind sie nur normale Funktionsargumente, und es gibt sie es ist nichts Besonderes erforderlich, um sie abzugrenzen:
(if aBooleanExpression 23 42)
Einige Sprachen verwenden Schlüsselwörter als Begrenzer, z. B. Algol, Ada, BASIC, Pascal, Modula-2, Oberon, Oberon-2, Active Oberon, Komponente Pascal, Zonnon, Modula-3:
IF aBooleanExpression THEN RETURN 23 ELSE RETURN 42;
In Ruby können Sie entweder ein Schlüsselwort oder ein Ausdruckstrennzeichen (Semikolon oder Zeilenvorschub) verwenden:
if a_boolean_expression then 23 else 42 end
if a_boolean_expression; 23 else 42 end
# non-idiomatic, the minimum amount of whitespace required syntactically
if a_boolean_expression
23 else 42 end
# idiomatic, although only the first newline is required syntactically
if a_boolean_expression
23
else
42
end
Go setzt voraus, dass die Zweige Blöcke sind, und lässt keine Ausdrücke oder Anweisungen zu, weshalb geschweifte Klammern obligatorisch sind. Daher sind keine Klammern erforderlich, obwohl Sie sie hinzufügen können, wenn Sie möchten. Perl6 und Rust sind in dieser Hinsicht ähnlich:
if aBooleanExpression { return 23 } else { return 42 }
Einige Sprachen verwenden andere nicht alphanumerische Zeichen, um die Bedingung abzugrenzen, z. B. Python:
if aBooleanExpression: return 23
else: return 42
Die Quintessenz lautet: Sie müssen in irgendeiner Weise feststellen, wo die Bedingung endet und der Zweig beginnt. Es gibt viele Möglichkeiten, Klammern sind nur eine davon.
THEN
).