![]() |
Schleifendurchlauf abbrechen
Hi
ich möchte beim eintreffen einer Bestimmten bedingung den aktuellen (while) Schleifendurchlauf abbrechen, jedoch nicht die ganze Schleife. Sozusagen möchte ich gleich zum nächsten Durchlauf schreiten, ohne den Schwanz abzuarbeiten. Beispiel wie's nicht geht:
Delphi-Quellcode:
Nach diesem Code ist Count = 1, ich möchte jedoch, das Count = 8 ist, gibts da noch nen anderen Befehl als break?count := 0; i := 0; while i <= 4 do begin if i = 2 then break; count := count + i; end; exit und abort gehen auch nicht. :( |
Re: Schleifendurchlauf abbrechen
1. Lustige Einrückung :wink:
2. Dein Beispiel erzeugt eine Endlosschleife :gruebel: 3. Ich denke, du suchst ![]() |
Re: Schleifendurchlauf abbrechen
Du vergisst in der Schleife
[delphi]i:=i+1 |
Re: Schleifendurchlauf abbrechen
Zitat:
|
Re: Schleifendurchlauf abbrechen
Und warum schreibst du nicht einfach
Delphi-Quellcode:
Warum kompliziert, wenns auch einfach geht? :gruebel:
if i <> 2 then
count := count + i; |
Re: Schleifendurchlauf abbrechen
Zitat:
So wie das Beispiel jetzt ist (auch wenn es falsch ist), wäre das eine Endlosschleife. Du musst schon irgendwo I := I + 1 schreiben. |
Re: Schleifendurchlauf abbrechen
Ja, verzeihung, das Beispiel stammt nicht aus meinem Programm, i zu inkrementieren habe ich wirklich vergessen :oops:
Delphi-Quellcode:
So ists schöner...und macht genau das was ich will, aber die meißten wußten eh was gemeint war.
count := 0;
i := 0; while i <= 4 do begin if i = 2 then begin i := i+1; Continue; end; count := count + i; i := i+1; end; if <> 2 war leider keine Option, dann könnt ich ja gleich count := 8 machen ;) Das Continue muß ich in der Hilfe irgendwie übersehen haben. :roll: |
Re: Schleifendurchlauf abbrechen
:gruebel: Warum ist "<>" keine Option? Wenn du weißt, bei welcher Zahl nichts gemacht werden soll, kannst du doch auch einfach eben diese Zahl ausschließen. Zur Not, falls es mehrere Zahlen sind, kannst du ja auch alle diese Zahlen in eine Menge packen und dann überprüfen, ob die Zahl nicht in der Menge ist.
|
Re: Schleifendurchlauf abbrechen
In meinem Späteren Programm weiß ich's aber vorher noch nicht, wie gesagt, dies hier ist nur ein einfaches Beispiel, um mein Anliegen zu verdeutlichen. (und in welchem, zugegeben, <> einfacher wäre)
|
Re: Schleifendurchlauf abbrechen
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:09 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 by Thomas Breitkreuz