Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi FOR - Schleife mit unterbrechung (https://www.delphipraxis.net/164547-schleife-mit-unterbrechung.html)

Marcel2906 17. Nov 2011 13:26

Delphi-Version: 2010

FOR - Schleife mit unterbrechung
 
Diesmal hab ich eine einfache Frage glaub ich, doch leider fin dich dazu nichts bzw. weiß nicht wonach ich suchen soll.

Undzwar möchte ich eine For schleife unterbrechen und wieder fortsetzen, also quasi:

Delphi-Quellcode:
For i := 0 to 2 and 5 to 8 do begin
Also i soll einmal mit dem wert 1, dann mit wert 2 die schleife durchlaufen, danach auf 5 springen...
Doch geht sowas überhaupt, wenn ja, wie sieht es dann richtig aus?

Bernhard Geyer 17. Nov 2011 13:28

AW: FOR - Schleife mit unterbrechung
 
Mit einer for-schleife nicht.

Hier müsstest du eine while-schleife machen:

Delphi-Quellcode:
i := 0;
while i < 8 do
begin
  ...

  Inc(i);

  if i = 3 then
    i := 5:
end;

Marcel2906 17. Nov 2011 13:33

AW: FOR - Schleife mit unterbrechung
 
dann könnte ich es aber auch so machen, oder:

Delphi-Quellcode:
For i := 0 To 2 Do Begin
   //Anweisung
End;
For i := 5 To 8 Do Begin
   //Anweisung
End;

Sir Rufo 17. Nov 2011 13:36

AW: FOR - Schleife mit unterbrechung
 
Ja, wenn es trotzdem noch DRY ist

Marcel2906 17. Nov 2011 13:36

AW: FOR - Schleife mit unterbrechung
 
Dry ?

Bummi 17. Nov 2011 13:37

AW: FOR - Schleife mit unterbrechung
 
Delphi-Quellcode:
for i in [1..2,5..8] do .....

Sir Rufo 17. Nov 2011 13:37

AW: FOR - Schleife mit unterbrechung
 
Zitat:

Zitat von Marcel2906 (Beitrag 1136669)
Dry ?

Don't Repeat Yourself

gammatester 17. Nov 2011 13:37

AW: FOR - Schleife mit unterbrechung
 
Klar geht das mit einer For-Schleife:
Delphi-Quellcode:
  for i:=0 to 8 do begin
    if i in [3,4] then continue;
    writeln(i);
  end;

DeddyH 17. Nov 2011 13:37

AW: FOR - Schleife mit unterbrechung
 
Du kannst das auch so machen:
Delphi-Quellcode:
For i := 0 To 8 Do Begin
   if i in [0..2, 5..8] then
     ...
End;
Oder Du verlagerst den Code in eine eigene Routine, der Du das "Teilarray" übergibst.

[edit] :lol: gammatester hatte den gleichen Gedanken, nur andersherum umgesetzt [/edit]

Sir Rufo 17. Nov 2011 13:38

AW: FOR - Schleife mit unterbrechung
 
Zitat:

Zitat von Bummi (Beitrag 1136670)
Delphi-Quellcode:
for i in [1..2,5..8] do .....

Die Bummi-Routine sieht am elegantesten aus :thumb:


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:01 Uhr.
Seite 1 von 2  1 2      

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