Einzelnen Beitrag anzeigen

Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Syntax-Frage (if, else begin und end)

  Alt 16. Sep 2007, 16:45
Moin Zusammen,

also ich habe es mir so angewöhnt:
Wenn nur der then-Zweig in Frage kommt, und dort nur eine Anweisung folgt, kommt sie direkt hinter das then, also in die gleiche Zeile.
Ausnahme:
Die Zeile wird dann zu lang, sprich, unübersichtlich.
Dann mache ich es auch bei einer Zeile so, wie bei mehreren.

Werden mehrere Zeilen, oder auch ein else-Zweig benötigt benutze ich bei beiden immer begin/end

Also:

Delphi-Quellcode:
// Nur then, eine Anweisung, kurze Zeile
if <Bedingung(en)> then <Anweisung>

// Nur then, eine Anweisung, lange zeile oder mehrere Anweisungen
if <Bedingung(en)> then begin
  <Anweisung(en)>
end;

// Auch else
if <Bedingung(en)> then begin
  <Anweisung(en)>
end else begin
  <Anweisung(en)>
end;

@Tommy:
Was Du aber in keinem Falle machen solltest (auch wenn es nicht direkt falsch ist):

Vergleiche einen boolschen-Ausdruck niemals auf true oder false.

Also:
Delphi-Quellcode:
// statt = true
if Ausdruck then ...
// statt = false
if not Ausdruck then ...
Zum einen ist diese Variante i.d.R. lesbarer (vorausgesetzt die Bezeichner wurden entsprechend benannt ), zum anderen kann man sich gerade bei = true eine Problem einhandeln.
true und false sind einfach nur Konstanten mit den Werten 1 (true) und 0 (false).
Üblicher Weise ist der Rückgabewert einer boolschen Funktion als 0 bei false (ok, passt) aber als <> 0 für true anzusehen.
Wenn eine Funktion also -1 oder 2 (mal als willkürliche Beispiele gewählt) als Rückgabewert liefert (um true zu signalisieren), und Du mit true (also 1) vergleichst, erhältst Du nicht das gewünschte Ergebnis.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat