für was denn not? Gehts nicht komplizierter? Klammern und warum man sie nicht vergessen sollte

Object Pascal im Detail - Datentypen www.delphi-treff.de 63 richtig: if b then 4.2.2.3.2. für was denn not? Manchmal, findet man auch solche abenteuerlichen Kontrukte: if CheckBox1.Checked then begin end else DoSth; end; Leere Anweisungsblöcke... Ku z u d s h e zlos: “o a ht a s richtig: if not CheckBox1.Checked then begin DoSth; end; 4.2.2.3.3. Gehts nicht komplizierter? if FileExistsFileName then Result := False else Result := True; Auch dieser Code funktioniert. Allerdings liefert FileExists ja bereits einen Boolean-Wert zurück. Warum also nochmal abfragen? Man kann diese 4 Zeilen nämlich in einer einzigen schreiben: Result := not FileExistsFileName; Ganz ähnlich ist es hiermit: if a 0 and a = 10 then ImBereich := True else ImBereich := False; Auch das kann man in eine einzige Zeile schreiben: ImBereich := a 0 and a = 10; if not i = 5 then ... Auch das lässt sich besser bzw. lesbarer schreiben: Object Pascal im Detail - Datentypen www.delphi-treff.de 64 if i 5 Einfach die richtigen Operatoren in der richtigen Situation benutzen. not ist zwar in vielen Fällen hilfreich und sinnvoll, aber nicht immer nötig...

4.2.2.3.4. Klammern und warum man sie nicht vergessen sollte

Die Klammern im obigen Codebeispiel dienen nicht nur der besseren Lesbarkeit, sondern sind unabdingbar wichtig, damit sich das Programm korrekt übersetzen lässt. Auch dies ist ein beliebter Anfängerfehler. Lassen wir die Klammern weg, so erhalten wir einen netten Compilerfehler: var a: Integer; begin a := 5; if a = 5 or a = 9 then ShowMessage hallo ; [Fehler] Unit1.pas42: Inkompatible Typen Setzen wir die Klammern wieder, lässt sich der Code problemlos übersetzen... Object Pascal im Detail - Verzweigungen www.delphi-treff.de 65

4.3. Verzweigungen

4.3.1. if-else

Es gibt kaum ein Programm, bei dem immer alle Befehle hintereinander ausgeführt werden. Verzweigungen sind ein häufig eingesetztes Mittel. Es handelt sich hierbei um Fallunterscheidungen, die in der Regel mit if durchgeführt werden: if boolean-ausdruck then anweisung; oder if boolean-ausdruck then anweisung else anweisung; Eine Anweisung kann dabei wiederum aus einer neuen if-Bedingung bestehen. Beispiel: if X then ... else if X then ... else ...; Das Beispiel bedeutet Folgendes: Ist x größer als Null, wird das ausgeführt, was hinter dem ersten then steht die drei Punkte. Handelt es sich dabei um mehr als einen Befehl, muss der Block mit begin und end umgeben werden. else, zu Deutsch „sonst , leitet eine Alternative ein. Wenn also die erste Bedingung nicht erfüllt ist, wird die zweite geprüft, hier, ob x vielleicht kleiner als Null ist. Trifft auch diese Bedingung nicht zu, bleibt noch ein else ohne Bedingung. Die letzten drei Punkte werden also immer dann ausgeführt, wenn die ersten beiden Bedingungen nicht zutreffen. Wäre bereits die erste Bedingung erfüllt, so würden die folgenden else-Abschnitte gar nicht mehr geprüft. Selbstverständlich muss so ein if-Block keine else if- oder else-Alternativen bieten. Das kommt immer auf die Situation an. Da sich das Ganze aber sehr stark an mathematische Logik anlehnt, dürfte die Notation nicht allzu schwer fallen.