AGB  ·  Datenschutz  ·  Impressum  







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

goto-befehl in delphi?

Ein Thema von toredo · begonnen am 24. Jul 2006 · letzter Beitrag vom 26. Jul 2006
Antwort Antwort
Seite 2 von 10     12 34     Letzte »    
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#11

Re: goto-befehl in delphi?

  Alt 24. Jul 2006, 23:42
Break geht eben doch: Aufgerufen in einer Schleife bricht es diese an der Aufrufstelle ab.

Beispiel:
Delphi-Quellcode:
var
  i: integer;
begin
  for i := 0 to 10 do
  begin
    if i = 5 then
      break;
  end;
  ShowMessage(IntToStr(i)); //Es wird 5 ausgegeben, da dort die Schleife abbricht
end;
Florian
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Oxmyx

Registriert seit: 21. Sep 2004
499 Beiträge
 
#12

Re: goto-befehl in delphi?

  Alt 24. Jul 2006, 23:44
Zitat von Florian Bernd:
Break geht eben doch: Aufgerufen in einer Schleife bricht es diese an der Aufrufstelle ab.
Sagte ich schon, dass ich von verschachtelten Schleifen rede? Ja, sagte ich.
  Mit Zitat antworten Zitat
xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#13

Re: goto-befehl in delphi?

  Alt 24. Jul 2006, 23:46
Hallo,
Zitat von Florian Bernd:
Break geht eben doch: Aufgerufen in einer Schleife bricht es diese an der Aufrufstelle ab.
wie oxmyx schon schrieb, was machst Du, wenn Du aus zwei (drei...) Schleifen springen willst? Mit Break bleibt Dir nur, ein Flag zu setzen, gefolgt von einem Break, in der übergeordneten Schleife das Flag untersuchen -> Break...
Machmal ist ein goto schon in Ordnung. Man muss nur wissen wann.

Gruß
xaromz
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#14

Re: goto-befehl in delphi?

  Alt 24. Jul 2006, 23:48
Es geht auch mit verschachtelten Schleifen, sogar ohne ein extra Flag zu setzen:
Delphi-Quellcode:
var
  i, i2, i3: integer;
begin
  for i := 0 to 10 do
  begin
    for i2 := 0 to 20 do
    begin
      for i3 := 0 to 30 do
      begin
        if i3 = 15 then
          break;
      end;
      if (i3 = 15) and (i2 = 10) then
        break;
    end;
    if (i3 = 15) and (i2 = 10) and (i = 5) then
      break;
  end;
end;
Wieso denn nicht einfach die Zählervariable verwenden, die sowieso in(de)crementiert wird?

Florian
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#15

Re: goto-befehl in delphi?

  Alt 24. Jul 2006, 23:53
Hallo,
Zitat von Florian Bernd:
Es geht auch mit verschachtelten Schleifen, sogar ohne ein extra Flag zu setzen:
...
Und wo ist das übersichtlicher/weniger fehlerträchtig als 1(!) goto? Mit einem goto spare ich mir mehrere Abfragen und der Code wird wesentlich übersichtlicher. Nur weil einem jemand mal erzählt hat, dass etwas schlecht ist, muss man es noch lange nicht glauben, ohne es zu hinterfragen.

Manchmal zweifle ich echt an der Menschheit .

Gruß
xaromz
  Mit Zitat antworten Zitat
Oxmyx

Registriert seit: 21. Sep 2004
499 Beiträge
 
#16

Re: goto-befehl in delphi?

  Alt 24. Jul 2006, 23:54
Zitat von Florian Bernd:
Es geht auch mit verschachtelten Schleifen, sogar ohne ein extra Flag zu setzen:
[...]

Wieso denn nicht einfach die Zählervariable verwenden, die sowieso in(de)crementiert wird?

Florian
Na das ist ja mal übersichtlich, besonders wenn die Bedingung komplizierter formuliert ist.
Und da willst du mir erzählen, dass das Goto-Konstrukt unübersichtlich wäre?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: goto-befehl in delphi?

  Alt 24. Jul 2006, 23:54
Man könnte auch exit nehmen.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#18

Re: goto-befehl in delphi?

  Alt 24. Jul 2006, 23:55
Das springt aus der ganzen Subroutine raus, was in vielen Fällen nicht erwünscht ist.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#19

Re: goto-befehl in delphi?

  Alt 24. Jul 2006, 23:56
Hallo,
Zitat von mkinzler:
Man könnte auch exit nehmen.
damit springt man aber komplett aus der Routine. Das ist nicht immer gewünscht.

Gruß
xaromz
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#20

Re: goto-befehl in delphi?

  Alt 24. Jul 2006, 23:59
Zitat von xaromz:
Hallo,
Zitat von Florian Bernd:
Es geht auch mit verschachtelten Schleifen, sogar ohne ein extra Flag zu setzen:
...
Und wo ist das übersichtlicher/weniger fehlerträchtig als 1(!) goto? Mit einem goto spare ich mir mehrere Abfragen und der Code wird wesentlich übersichtlicher. Nur weil einem jemand mal erzählt hat, dass etwas schlecht ist, muss man es noch lange nicht glauben, ohne es zu hinterfragen.
Tue ich nicht! Ich hatte auch nie gesagt, dass meine Variante besser ist Nur wenn jemand sagt: "das ist nicht möglich ohne extra Flag" ... wieso ihm nicht zeigen, dass es doch möglich ist?

Zitat von Oxmyx:
Und da willst du mir erzählen, dass das Goto-Konstrukt unübersichtlich wäre?
Auch dies habe ich nie behauptet.

Florian
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 10     12 34     Letzte »    


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 08:08 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