AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Syntax-Frage (if, else begin und end)

Ein Thema von Tommy1988 · begonnen am 16. Sep 2007 · letzter Beitrag vom 17. Sep 2007
Antwort Antwort
Seite 1 von 2  1 2      
Tommy1988
(Gast)

n/a Beiträge
 
#1

Syntax-Frage (if, else begin und end)

  Alt 16. Sep 2007, 15:05
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:
if TestVariable = True then
 begin
  // Eine Codezeile
 end else
 begin
 // Eine weitere Codezeile
 end;
In dem Fall könnte man das begin-end weglassen.

Meine Frage: Ist das eigentlich FALSCH was ich da mache?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

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

  Alt 16. Sep 2007, 15:07
Nein, warum sollte es falsch sein? eine Sequenz besteht entweder aus einem einzelnen Befehl oder wird von begin..end umschlossen.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von alleinherrscher
alleinherrscher

Registriert seit: 8. Jul 2004
Ort: Aachen
797 Beiträge
 
Delphi XE2 Professional
 
#3

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

  Alt 16. Sep 2007, 15:07
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);
„Software wird schneller langsamer als Hardware schneller wird. “ (Niklaus Wirth, 1995)

Mein Netzwerktool: Lan.FS
  Mit Zitat antworten Zitat
Tommy1988
(Gast)

n/a Beiträge
 
#4

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

  Alt 16. Sep 2007, 15:08
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
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#5

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

  Alt 16. Sep 2007, 15:09
Deshalb nehem ich normalerweise auch immer begin..end
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Ralf Kaiser
Ralf Kaiser

Registriert seit: 21. Mär 2005
Ort: Wuppertal
932 Beiträge
 
Delphi 10.3 Rio
 
#6

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

  Alt 16. Sep 2007, 15:14
Zitat von Tommy1988:
Meine Frage: Ist das eigentlich FALSCH was ich da mache?
Nein auf keinen Fall. Letztendlich ist es eine Frage des persönlichen Stils (oder eventuell eine Frage eine firmeninternen Style-Guides)

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
Ralf Kaiser
  Mit Zitat antworten Zitat
Benutzerbild von Kevin
Kevin

Registriert seit: 11. Feb 2004
Ort: Bonn
576 Beiträge
 
Delphi 2006 Professional
 
#7

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

  Alt 16. Sep 2007, 15:19
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.
Kevin
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

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

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

  Alt 16. Sep 2007, 15: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
16. Sep 2007, 15:46
Dieses Thema wurde von "Matze" von "Programmieren allgemein" nach "Object-Pascal / Delphi-Language" verschoben.
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#10

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

  Alt 17. Sep 2007, 08:03
Zitat von Christian Seehase:
Moin Zusammen,

also ich habe es mir so angewöhnt:

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;
Hast Du Dir mal den StyleGuide von Borland / CodeGear angeschaut?
Danach wäre Deine Version falsch.
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:09 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz