Referenz - Bedingungsstrukturen
Bedingungen sind Ausdrücke, die entweder wahr (ungleich 0) oder falsch (gleich 0) sein können. Häufig wird zur Kennzeichnung wahrer Ausdrücke der Wert -1 oder 1 verwendet, allerdings interpretiert FreeBASIC alle Werte ungleich 0 als wahr. Für Bedingungen gelten dieselben Regeln wie für Ausdrücke und Operatoren.
- Schon eine einzelne Konstante kann eine gesamte Bedingung sein.
- Sinnvoll sind Bedingungen jedoch erst mit Variablen.
- Eine Bedingung darf nahezu unendliche Komplexität erreichen.
- Sie kann auch Funktionen und Operatoren enthalten.
- Bedingungsstrukturen werden hauptsächlich mit IF...THEN und SELECT CASE oder als Abbruchbedingung in Schleifen verwendet, können aber auch in Wertzuweisungen bei Variablen auftauchen; siehe dazu BIT und natürlich auch IIF.
Beispiele für einfache Bedingungsstrukturen:
' Abfrage eines Variablenwerts
IF alter < 18 THEN
PRINT "Du bist noch nicht volljährig!"
END IF
' Schleife, die von einer Bedingung abhängt
DO UNTIL EOF(dateinummer) ' bis Dateiende erreicht
LINE INPUT #dateinummer, variable
LOOP
' Zuweisung abhängig von einer Bedingung
minimum = IIF(wert1 < wert2, wert1, wert2)
Mehrere Bedingungen können über Operatoren wie AND und OR verknüpft werden. Dabei ist zu beachten, dass hierbei keine Wahrheitswerte verknüpft werden, sondern eine bitweise Verknüpfung der Ausdrücke stattfindet. Ist das Ergebnis gleich 0, so wird es als falsch interpretiert, sonst als wahr. Das bedeutet z. B., dass die Werte 2 und 4 für sich genommen wahr sind, 2 AND 4 dagegen falsch.
ANDALSO und ORELSE verknüpfen nicht bitweise, sondern interpretieren die Angaben als Wahrheitswerte; 2 ANDALSO 4 ergibt damit -1 (wahr). Außerdem brechen beide Operatoren sofort ab, wenn das Ergebnis feststeht. Ist der Ausdruck links vom ANDALSO 0 (falsch), wird der rechte Ausdruck nicht mehr ausgewertet, da das Ergebnis nicht mehr wahr werden kann. Analog dazu gibt ORELSE -1 (wahr) zurück, wenn der linke Ausdruck ungleich 0 ist; der rechte Ausdruck wird nicht mehr ausgewertet. Dieses Verhalten kann hilfreich sein, wenn der rechte Ausdruck nur unter bestimmten Bedingungen ausgewertet werden darf.
Beispiele für kombinierte Bedingungen:
' Kombination mit AND und OR
IF (alter > 13 AND begleitung = "Eltern") OR alter >= 18 THEN
Zutritt
END IF
' Vorab-Prüfung mit ANDALSO
IF meinPointer > 0 ANDALSO *meinPointer = 1337 THEN
' wäre meinPointer = 0, würde die Dereferenzieung einen Fehler erzeugen
tueIrgendwas
END IF
Durch die Klammerung im ersten Beispiel kann die gewünschte Reihenfolge bei der Abarbeitung erzwungen werden. Hier hätte auch ORELSE statt OR verwendet werden können.
Siehe auch:
Ausdrücke und Operatoren, Bit-Operatoren, Programmablauf
Weitere Informationen:
Wikipedia-Artikel zur boolschen Algebra
Zusätzliche Informationen und Funktionen | ||||
---|---|---|---|---|
|