AGB  ·  Datenschutz  ·  Impressum  







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

Break / Exit - Grundsatzfrage

Ein Thema von burn · begonnen am 19. Dez 2008 · letzter Beitrag vom 19. Dez 2008
Antwort Antwort
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.340 Beiträge
 
Delphi 12 Athens
 
#1

Re: Break / Exit - Grundsatzfrage

  Alt 19. Dez 2008, 10:45
For- und While-"Schleifchen" sind intern eigentlich gleich.
Bei den Repeat-Until-"Schleifchen" wird nur der Ausdruck zuletzt ausgewertet

Delphi-Quellcode:
for i := i2 to i3 do begin

  if xyz then break;

end;

// entspricht (bzw)

i := i2;
while i <= i3 do begin

  if xyz then break;

  inc(i);
end;

// nja, eigentlich mehr diesem, wenn man bedenkt,
// daß Delphi i3 nur zu Begin der Schleife auswertet und das ergebnis zwischenspeichert

i := i2;
e := i3;
while i <= e do begin

  if xyz then break;

  inc(i);
end;

// und Delphi macht intern aus der For-, bzw der 2. While-Schleife dieses

i := i2;
e := i3;
Loop:
if i > e then goto LoopExit;

  if xyz then goto LoopExit;

  inc(i);
goto Loop;
LoopExit:

// PS: das ganze mit Repeat-Until, statt While, sieht etwa so aus

i := i2;
e := i3;
Loop:

  if xyz then goto LoopExit;

  inc(i);
if i <= e then goto Loop;
LoopExit:

// alles ohne CodeOptimierung
so und jetzt sage mal einer GOTO / Exit / Break seien so schlecht, wenn intern eh alles auf GOTO+IF aufbaut


Am Ende hat alles seine Vor- und Nachteile.

Und ich versuch das zu verwenden, welches in der entsprechenden Situation am Übersichtlichsten/Einfachsten ist.

[add] *rote kästen ignorier*


[add]
Nur hier sollten endlich mal alle den Unterschied zwischen EXIT und Break/Continue begreifen

Exit - beendet die Prozedur/Funktion
Break - beendet die Schleife
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Antwort Antwort


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 18:24 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