Programmsteuerung 4: Die "while"-Schleife
Eine while-Schleife wiederholt alle Befehlszeilen zwischen begin und end so lange, bis die Bedingung false ist.
Es wird dabei zuerst nach der Bedingung gefragt und dann erst, insofern diese wahr ist, die Anweisungen bearbeitet.
Daher wird diese Schleife auch als "abweisende Schleife" bezeichnet.
Die Struktur:
while Bedingung do begin // Anweisungen end; // (ent)sprechend: während irgendwas wahr ist mache irgendwas // Wann endet diese Schleife? while true do begin // Anweisungen end; |
Kleines Beispiel zum Dividieren mit unbestimmten Zahlen, aber mit einem Ergebnis in Ganzzahlen und mit Rest:
Vorausgesetzt sind hier die Variablen divident:Real, divisor:Real, ergebnis:Integer. Wer möchte, kann
die Variablentypen nochmals bei Step 04
nachlesen, also was "Real" genau für Werte haben kann.
var dividend, divisor, ergebnis : Integer; begin // ... while (dividend = divisor) or (dividend > divisor) do begin dividend := dividend - divisor; ergebnis := ergebnis + 1; end; ShowMessage('Lösung: '+ (IntToStr(ergebnis)) + 'Lösung: '' Rest: '+(FloatToStr(dividend))); end; |
Dieses Beispiel ist hier nur sehr kurz aufgelistet. Die "Vollversion" findest du gerne unter
GitHub.
Viel Spaß ;)
Viel Spaß ;)
Es ist wichtig, die while-Schleife genau von der if-Anweisung zu trennen. In meinem Kurs früher habe ich
viele Schüler gehabt, die damit erstmal eine Schwierigkeit hatten, da der Aufbau sehr ähnlich ist und es
wirklich aufs Detail ankommt.
Ich darf mich beim Implementieren fragen, möchte ich die Ausführung nur einmal haben (dann
nehme ich "if" - "wenn") oder soll es so lange wiederholt werden, bis meine Bedingung "false" ist.
Beim letzteren Gedanken gehört auch dazu, dass ich mir überlege, ob es denn "false" werden kann.
Andernfalls habe ich eine sogenannte "Endlosschleife" programmiert, die ggf. das Programm zum "hängen" oder
sogar zum Absturz bringen kann.