Die allgemeine Form der bedingten Anweisung kombinieren:
IF "Logischer Ausdruck" DANN. .. ELSE ...
Die "Logische Ausdruck" ist eine boolesche Ausdruck. Ein boolescher Ausdruck ist ein Ausdruck, der als TRUE oder FALSE ausgewertet werden kann.
Ein boolean Ausdruck kann Vergleichsoperatoren und Booleschen Operatoren mit konstruiert werden.
Vergleichsoperatoren:
= equals
<> not equals
> greater than
>= greater than or equals
< less than
<= less than or equals
Set Vergleichsoperatoren:
= equals
<= returns true, if set1 is a subset of set2
>= returns true, if set1 is a superset of set2
in returns true, if an element is in the set
Boolesche Operatoren:
AND logical and
OR logical or
NOT logical not
XOR logical exclusive disjucntion
Beispiele:
IF A = 10 THEN ...
IF A >= B THEN ...
IF C or D THEN ... (Note: C and D have to be logical, i.e. TRUE or FALSE)
IF NOT E THEN ... (Note: E has to be logical, i.e. TRUE or FALSE)
C, D und E können mit jedem logischen Ausdruck ersetzen, zum Beispiel:
IF (edit1.text = '') OR (ISEMPTY(edit2.text)) THEN ...
IF NOT checkbox1.checked THEN ...
Beachten Sie, dass logischer Ausdruck kann mit Booleschen Operatoren aus einfacherer logischer Ausdrücken konstruiert werden, für Beispiele:
IF (A = 10) AND (A >= B) THEN ...
IF NOT ((A = 10) AND (A >= B)) THEN ...
Häufiger Fehler beim Schreiben eines logischen Ausdrucks berücksichtigt nicht die Priorität des Operators (welcher Operator zuerst ausgewertet wurde). Die Booleschen Operatoren haben höhere Priorität als Vergleichsoperatoren, zum Beispiel:
IF A = 10 OR A >= B THEN ...
Die oben falsch ist, weil Delphi
10 OR A
erste, statt
A = 10
zu bewerten versucht. Wenn A selbst kein logischer Ausdruck ist, tritt ein Fehler auf.
Die Lösung unter Verwendung von Klammern ist, so dass die oben WENN ... DANN ... soll geschrieben werden als:
IF (A = 10) OR (A >= B) THEN ...
Zur Überprüfung 3 Edit-Steuerelemente, die bedingte Anweisung wird:
IF (Edit1.text <> '') AND (Edit2.text <> '') AND (Edit3.text <> '') THEN ...
Hinweis: Etwas abseits des Themas, aber verwandt. Kostenlose Komponenten TJvValidators, TJvValidationSummary und TJvErrorIndicator von Jedi JVCL project bieten einen schönen Validierungsmechanismus.
Jede Programmiersprache, die ich kenne, und das ist mehr als 200, hat eine Art boolesche Logik, die die Operationen AND, OR und NOT beinhaltet. Wenn Sie diese noch nicht gesehen haben, müssen Sie wirklich ein Buch lesen. In der Tat, wenn Sie es in C# getan haben, warum versuchen Sie es nicht einfach in Delphi? Der einzige Unterschied ist, dass in Delphi Klammern nicht immer mit einer IF-Anweisung benötigt werden. Aber wenn Sie mehrere Gleichheitsvergleiche anstellen, sollten Sie zum Beispiel 'if (a = b) oder (c = d)' schreiben. –
Zusätzliche. Sie müssen auch berücksichtigen, dass es eine Bedingung gibt, die in einer Klammer gruppiert werden muss, wie if ((a = x1) und (b = y1)) oder ((a = x2) und (a = y2)) dann etwas tun. – XBasic3000