Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Break / Exit - Grundsatzfrage (https://www.delphipraxis.net/126159-break-exit-grundsatzfrage.html)

burn 19. Dez 2008 10:53

Re: Break / Exit - Grundsatzfrage
 
@himitsu

Nur damit kein Mißverständnis entsteht:
Ich weiß was Break / Exit machen ... Mir geht lediglich darum
warum ich die nicht verwenden soll ...

mfg Burn

DeddyH 19. Dez 2008 10:53

Re: Break / Exit - Grundsatzfrage
 
Ich oute mich jetzt auch mal als schlechten Programmierer, da ich öfter solche Dinge hier verwende:
Delphi-Quellcode:
procedure TuWas;
begin
  if not unabdingbare_Ausgangsbedingung then exit;
  //hier dann der eigentliche Code
end;

Tyrael Y. 19. Dez 2008 10:54

Re: Break / Exit - Grundsatzfrage
 
Zitat:

Zitat von DeddyH
Ich oute mich jetzt auch mal als schlechten Programmierer, da ich öfter solche Dinge hier verwende:
Delphi-Quellcode:
procedure TuWas;
begin
  if not unabdingbare_Ausgangsbedingung then exit;
  //hier dann der eigentliche Code
end;

Das ist völlig vernünftiger Code...siehe mein Post darüber.

burn 19. Dez 2008 10:56

Re: Break / Exit - Grundsatzfrage
 
@DeddyH

Genau so mach ich das auch immer und
ich versteh nicht was daran schlecht sein soll.

Ich finde den Code so einfach lesbarer (Meine Meinung)

Burn

himitsu 19. Dez 2008 11:05

Re: Break / Exit - Grundsatzfrage
 
das in #23 von DeddyH mach ich auch öfters

(schreibe oftmals mehrere Befehle in eine Zeile und da kann ich den gesparrten Platz bezüglich der Einrückung schon gut gebrauchen ... außerdem wird da eine Zeile, für's END gesparrt)

@burn
hatte erst alle, statt einige geschrieben ... also hab nicht unbedingt dich gemeint :angel:


PS: wißt ihr wie schön man ein GOTO verwenden kann, wenn man mit BREAK nicht mehrere Schleifchen auf einmal verlassen kann? (ich vermisse sowas wie Break(3); für's Verlassen der letzen 3 Ebenen )

DeddyH 19. Dez 2008 11:06

Re: Break / Exit - Grundsatzfrage
 
Ich denke mal, break und exit können dann in eine Falle führen, wenn sie in sehr weit verschachtelten Codes mittendrin verwendet und daher irgendwann übersehen werden können. Da ist dann eine anständige Schleifenbedingung "selbstredender". Aber wie ich schon im anderen Thread gesagt habe, man sollte diese Möglichkeiten nicht generell verteufeln, überlegt und mit Bedacht eingesetzt können Sie IMHO sinnvoll eingesetzt werden (siehe mein Beispielcode).

jfheins 19. Dez 2008 11:18

Re: Break / Exit - Grundsatzfrage
 
Ich finde eigentlich auch nichts schlimmes an break oder Exit :gruebel:

Ich meine ich finde sowas:
Code:
forschleife
begin
  if (bed_1 || bed_2)
    break;

  if (bed_3)
    continue
  else if (weltuntergang)
    exit;

// Code

  if (sonderfall)
    continue;

 // Code
end;
Viel schöner als das mit einem Riesenbatzen logischer Verknüpfungen im while-Kopf zu lösen.

Spätestens ab 3 voneinander Abhängigen Bedingungen sieht der while-Kopf dann nur noch unübersichtlich aus.

Evtl. kann man in manchen Fällen statt einem Exit eine Exception werfen (z.B. Leere Liste sortieren).

Aber grundsätzlich finde ich diese Schlüsselwörter zur Schleifensteuerung sinnvoll und möchte sie nicht um jeden Preis in die while-Bedingung reinquetschen wollen ;)

goto ist da deutlich unübersichtlicher als ein break an der richtigen Stelle. (Wir brauchen ein ComeFrom ^^)

Man sollte imho allg. darauf achten, dass der Code verständlich ist und wann was getrtan wird. Wenn ich am Schleifenkopf 5 Variablen mit 7 Operatoren verknüpfe blicke ich da ne Woche später nicht mehr durch ...

@himitsu ganz oben: Ob der Compiler aus meiner Schleife goto's macht, oder nicht ist mir egel, solange er sich nicht darin verheddert ^^

@himitsu nicht ganz oben: In seperate Funktionen auslagern? ==> Exit ^^

nicodex 19. Dez 2008 11:22

Re: Break / Exit - Grundsatzfrage
 
Zitat:

Zitat von himitsu
(ich vermisse sowas wie Break(3); für's Verlassen der letzen 3 Ebenen )

Viel Spaß beim Modifizieren des Quellcodes, wenn sich die Anzahl der Blöcke ändert ;)

himitsu 19. Dez 2008 11:37

Re: Break / Exit - Grundsatzfrage
 
Zitat:

Zitat von nicodex
Viel Spaß beim Modifizieren des Quellcodes, wenn sich die Anzahl der Blöcke ändert ;)

nja, dazu dann noch 'ne Variante einer benannten While/Repeat-Schleife und es paßt :mrgreen:

Delphi-Quellcode:
while Bedingung name 'xyz' do begin
  while Bedingung do begin

    Break('xyz');

  end;
end;
wobei es so nach Speicher-/Rechenleistung wohl besser wär,
dazu leider unverständlicher (schön benannter Name <> Zahl), abgesehn bei Verwendung von Konstanten
Delphi-Quellcode:
while Bedingung id 123 do begin
  while Bedingung do begin

    BreakID(123);

  end;
end;

ein
Delphi-Quellcode:
with name1:irgendwas do
  with name2:irgendwas do

oder gar //

with name1:irgendwas, name2:irgendwas do
würde sich in Delphi auch gut machen

burn 19. Dez 2008 11:42

Re: Break / Exit - Grundsatzfrage
 
Also um das ganze nochmal auf den Punkt zu bringen:

Break/Exit sind DOCH kein schlechter Stil, wenn man diese
sinnvoll einsetzt und der Code lesbar bleibt.

Besten Dank für eure Meinungen

und Tschüss


mfg Burn


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:23 Uhr.
Seite 3 von 3     123   

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