![]() |
Syntax-Frage (if, else begin und end)
Hallo, ich habe mir in den letzten Zwei Jahren einige Bücher über Delphi und die Programmierung damit
durchgelesen. Viele Autoren verwenden meist nie begin und end. z.B. bei einer if else- Abfrage. Bei mir ist es jetzt so, da wo man kein begin und end braucht, verwende ich es trotzdem:
Delphi-Quellcode:
In dem Fall könnte man das begin-end weglassen.
if TestVariable = True then
begin // Eine Codezeile end else begin // Eine weitere Codezeile end; Meine Frage: Ist das eigentlich FALSCH was ich da mache? |
Re: Syntax-Frage (if, else begin und end)
Nein, warum sollte es falsch sein? eine Sequenz besteht entweder aus einem einzelnen Befehl oder wird von begin..end umschlossen.
|
Re: Syntax-Frage (if, else begin und end)
Ne falsch is das nicht, nur etwas umständlich, wenn du jeweils nur eine Anweisung hast, brauchst du keinen begin und end block und du kannst auch schreiben:
Delphi-Quellcode:
if bedingung then eineanweisung(mitparametern) else eineandereanweisung(mitparametern); |
Re: Syntax-Frage (if, else begin und end)
Das ist mir klar ;)
Aber angenommen unter dem else ohne begin und end kommen noch viele weitere Codezeilen. Dann finde ich es überichtlicher das, auch wenn es nur eine Zeile ist, es einzuschließen |
Re: Syntax-Frage (if, else begin und end)
Deshalb nehem ich normalerweise auch immer begin..end
|
Re: Syntax-Frage (if, else begin und end)
Zitat:
Auch ich verwende grundsätzlich beginn..end da man dann schneller eine paar Anweisungen ergänzen kann. Ausserdem finde ich, dass es, korrekt eingerückt, "schöner" aussieht. Ohne begin..end "hängen einige Zeilen dann immer so unmotiviert in der Gegend rum :) |
Re: Syntax-Frage (if, else begin und end)
Ich nehme gerne den begin/end-Block auch für nur eine Anweisung, da es für den Fall einer Erweiterung um weitere Zeilen einfacher ist. Letztendlich ist es natürlich nicht falsch und Geschmacksache.
|
Re: Syntax-Frage (if, else begin und end)
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:
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.
// statt = true
if Ausdruck then ... // statt = false if not Ausdruck then ... 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. |
DP-Maintenance
Dieses Thema wurde von "Matze" von "Programmieren allgemein" nach "Object-Pascal / Delphi-Language" verschoben.
|
Re: Syntax-Frage (if, else begin und end)
Zitat:
Danach wäre Deine Version falsch. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:04 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz