Seite 1 von 1

Schleifenvergleich

Verfasst: 05.11.2004 15:31
von bluejoke
Hallo!

Mich würde mal interessieren, welchen Vorteil die For-Schleife gegenüber den beiden (sind doch 2, oder? Foreach zählt für mich nicht dazu) Alternativen hat, oder ob es außer der Schreibweise überhaupt Unterschiede gibt.
Ich hab mir nämlich früher angewöhnt, eine Repeat- oder eine While-Schleife zu nehmen, und in dieser Schleife eben eine Zählvariable hochzuzählen.

Ist die For-Schleife im Vergleich dazu besser, oder ist das nur übersichtlicher.

Vielen Dank,

Simon

Verfasst: 05.11.2004 15:59
von Falko
Hier werden alle Schleifenmöglichkeiten gut erklärt.

http://www.computerbase.de/lexikon/Schl ... ammierung)

MfG Falko

Verfasst: 05.11.2004 16:31
von Franky
Also folgendes:

1.)Repeat ist eine sogenannte Fussgesteuerte Schleife, das heißt, es wird jeweils am Ende der Schleife die Bedingung überprüft. Somit wird sie mindestens 1 mal durchlaufen, bevor der Erste Test stattfindet.

2.)Die WhileSchleife ist eine Sogenannte Kopfgesteuerte Schleife, genau wie die Forschleife.

Eine Forschleife ist eigentlich ein

Code: Alles auswählen

a=1
ende=10
steps=1
While a<=ende
    debug a
    a=a+steps
Wend
Somit gibt es keinen Unterschied zwischen den beiden, ausser der Übersichtlichkeit. Und, man kann bei der WhileVariante variable steps nehmen, du kannst zum beispiel schreiben:

Code: Alles auswählen

a=1
ende=10
steps=1
While a<=ende
     debug a
     if a=5
          steps=2
     endif
    a=a+steps
Wend
aber nicht :

Code: Alles auswählen

steps=1
For a=1 to 10 step steps
     debug a
     if a=5
          steps=2
     endif
next 

http://www.robsite.de/php/pureboard-arc ... t=schleife

Verfasst: 05.11.2004 17:20
von bluejoke
Dankeschön,

interessiert hat mich vor allem obs Geschwindigkeitsunterschiede gibt.
War aber auch interessant dieses Verhalten bei den For-Schleifen zu erfahren, da hätte ich wohl gestutzt, wenn ich das ausprobiert hätte.

Was ich mich noch frage ist, ob es eine messbare Veränderung der Prozessorauslastung gibt, wenn ich verschiedene Schleifen benutze, oder wenn ich eine Schleife mal mit break abbreche.


EDIT: Mir gehts hier nicht unbedingt um die Praxis-Frage, weil der Unterschied, um in der Praxis irgendwas zu bedeuten, wohl viel zu gering ist, sondern nur um die theoretische Frage des Unterschieds zwischen den Schleifen.
Und auch nicht um den Unterschied beim Abarbeiten (kopf- oder fußgesteuert u.s.w.)