Wie genau funktoniert Repeat/Until & While/Wend
Übersicht

hobby-spielerBetreff: Wie genau funktoniert Repeat/Until & While/Wend |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo ich bin in einem BB Tutorial und verstehe nicht ganz wozu die Repeat und Until Schleife da ist.
Das Beispiel des Tutorials: Code: [AUSKLAPPEN] zaehler = 0 Repeat ;WIEDERHOLE zaehler = zaehler + 1 ;erhöhe die variable "zähler" Print zaehler ;Gib den wert des zaehlers am bildschirm aus until zaehler = 10 ;BIS der zaehler gleich 10 ist Das gleich mit While und Wend nur hier verstehe ich gar nichts mehr??? Das komplette Tutorial: While/Wend Eine der Unterschiede zwischen While- und Repeat-Schleife besteht darin, dass bei der While-Schleife zuerst die Abbruchbedingung getestet wird. Fällt dieser Test positiv aus, wird die Schleife ausgeführt. Code: [AUSKLAPPEN] While Bedingung ;solange die Bedingung stimmt
Print "Blah" Wend ;ende der Konstruktion Wie man sieht, kann man eine While-Schleife anstelle einer Repeat-Schleife zur Erstellung der Main Loop (davon aber später) nutzen. Meistens wird aber die Repeat-Schleife verwendet. Bei manchen Befehlen funktioniert nur die eine bei manchen wieder nur die andere Schleife (sind allerdings wenige Befehle die da kritisch reagieren, vor allem bei den 3D-Kollisons-Befehlen ist das der Fall). Code: [AUSKLAPPEN] While not a=1
Code: [AUSKLAPPEN] Wend
Dies ist eine besondere Schreibweise. Wenn a ungleich 1 ist wird die Schleife ausgeführt. Das wars dann an dieser Stelle, ist doch gar nicht so schwer, oder? Quelle : http://de.wikibooks.org/wiki/B...ect.2FCase |
||
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Der Unterschied ist nur der das While kopfprüfend ist, Repeat dagegen Fußprüfend. Heißt, eine Repeat-Schleife wird mindestens einmal ausgeführt (sie prüft ja erst zum Ende) und eine While nicht zwangsläufig (sie prüft bereits vor Beginn eines Durchlaufs ob sie abgebrochen werden soll). Wenn Du z.B. mit Dateien mit "undefiniertem" Inhalt arbeitest wirst Du den Unterschied brauchen.
Edit: Undefiniert klingt jetzt etwas wild merke ich gerade beim Korrekturlesen ![]() |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Schleifen benötigst Du, um wiederkehrende Aufgaben durchzuführen.
Vielleicht hast Du schon die FOR/NEXT-Schleife verstanden? Hier geht es darum einen Codeteil x-mal durchlaufen zu lassen. BlitzBasic: [AUSKLAPPEN] For i=1 To 10 Bei der REPEAT/UNTIL-Schleife ist es etwas anders. Sie wird oft eigesetzt, wo du noch nicht weißt, wieviele Schleifendurchgänge nötig sein werden, bzw. auch gerne für Endlosschleifen: BlitzBasic: [AUSKLAPPEN] Repeat Repeat/Until heißt ja übersetzt "Wiederhole...bis.." und meint "wiederhole diesen Codeabschnitt bis etwas Bestimmtes eintritt". Hier zum Beispiel läuft die Scheife bis jemand die ESC-Taste drückt: BlitzBasic: [AUSKLAPPEN] Until KeyHit(1) KeyHit(1) ist die Abfrage, ob die ESC-Taste gedrückt wurde, Du kannst aber auch jede andere Bedingung hinter UNTIL schreiben, etwa: BlitzBasic: [AUSKLAPPEN] Until Wert=55 dann läuft die Schleife bis WERT zufällig einmal 55 ist: BlitzBasic: [AUSKLAPPEN] Repeat Willst Du mehrere Ausstiegsbedingungen ermöglichen, dann gibt es auch den EXIT-Befehl. Ihn kannst du mehrfach in dem Codeabschnitt einsetzen. Wird er irgendwann einmal im Programm erreicht, wird sofort die Schleife verlassen: BlitzBasic: [AUSKLAPPEN] Repeat Der Unterschied zwischen REPEAT/UNTIL und WHILE/WEND ist nicht sehr groß und als Anfänger könntest du zunächst mit der ersten Methode ausreichend zurechtkommen. |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group