![]() |
FOR Schleife mit Schrittweite STEP...
Hallo,
im BASIC kann man doch mit FOR mI = 1 to 500 STEP 5 in 5.-Schritten durch die Schleife gehen. Kann das sein, dass die DELPHI-For-Schleife das nicht kann? Oder? MfG Foxgrove |
Re: FOR Schleife mit Schrittweite STEP...
Hi!
Wusst ich doch, dass ich das schon mal gelesen hatte: ![]() Ciao Frederic |
DP-Maintenance
Dieses Thema wurde von "Christian Seehase" von "VCL / WinForms / Controls" nach "Object-Pascal / Delphi-Language" verschoben.
Die Frage bezieht sich auf die Sprache als solche |
Re: FOR Schleife mit Schrittweite STEP...
Moin Foxgrove,
stimmt, Du kannst in Delphi bei For-Schleifen keine Schrittweite angeben. Ich habe mir Frederics angegebenen Thread nicht vollständig durchgesehen, deshalb hier ein Workaround:
Delphi-Quellcode:
while i <= 500 do begin
// Mach was in der Schleife inc(i,5); end; |
Re: FOR Schleife mit Schrittweite STEP...
also ich hab gelesen, man sollte Schleifenvariablen tunlichst nicht manipulieren :gruebel:
wäre es nicht sicherer für eine korrekte Ausführung einfach die gesamte Anweisung mittels if einzufassen:
Delphi-Quellcode:
was sol das überhaupt bringen, die Schleife Schrittweise auszuführen?
wihlwhile i <= 500 do begin
if i mod 5 = 0 then begin // Mach was in der Schleife end; end; |
Re: FOR Schleife mit Schrittweite STEP...
Hallo,
das ist doch hier keine Schleifenvariable im eigentlichen Sinn. Du sollst bei einer Variablen ( hier n ), die in einem For .... do Statement vorkommt, nichts verändern.
Delphi-Quellcode:
Es gibt überhaupt keinen Grund step einzuführen.
For n:=0 to 1000 do
begin // das hier solltest du besser lassen, für was auch? inc(n,2); //Tu was mit n end; For n:=0 to 500 do begin // das hier funktioniert genauso m:=n*2; //Tu was mit m end; Dafür benutzt man repeat ... until oder while ... do Rainer |
Re: FOR Schleife mit Schrittweite STEP...
Zitat:
Ob du sie dabei um 1 oder um 5 erhoehst, macht keinen Unterschied. Die Laufvariable soll man nur in for-Schleifen in Frieden lassen ;) Greetz alcaeus |
Re: FOR Schleife mit Schrittweite STEP...
Zitat:
|
Re: FOR Schleife mit Schrittweite STEP...
So sollte es auch gehen,
Delphi-Quellcode:
Grüße
FOR i:=1 TO 500 DIV Step DO
BEGIN // Tu was mit i * Step END; Klaus |
Re: FOR Schleife mit Schrittweite STEP...
Hallo,
habs ausprobiert. Der Compiler meckert tatsächlich, wenn man versucht in For n:=1 to 100 do n zu verändern. Ist aber nur für D7 getestet. Im Original Pascal-Dialekt geht das und ist ausdrücklich erlaubt. In Turbo Pascal bis 7.0 ebenfalls. Rainer |
Re: FOR Schleife mit Schrittweite STEP...
Mit Assembler kannst du den Compiler Austricksen und die Laufvariable manipulieren, allerdings ist es nicht ratsam, da der Compiler die Schleife optimiert und eventuell rückwärts zählt. Dann hast du ein Problem ;)
|
Re: FOR Schleife mit Schrittweite STEP...
Zitat:
Evtl. kann man immer noch die Optimierung ausmachen. ;) Greetz alcaeus |
Re: FOR Schleife mit Schrittweite STEP...
Zitat:
|
Re: FOR Schleife mit Schrittweite STEP...
Zitat:
...:cat:... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:21 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