Step 12 - while

✅ Dein Danke zählt: Sichern wir gemeinsam Delphi-Lernen.de!

— Marco Hetzel

Seit 2006 biete ich Dir kostenloses Delphi-Wissen. Hat Dir die Seite geholfen?
Wenn Du diesen Schatz bewahren möchtest, freue ich mich riesig über Deine Unterstützung!

🎁 Jetzt Zukunft sichern!
Jetzt Zukunft sichern! 🎁



Programmsteuerung 4: Die "while"-Schleife


Deine Frage an den Delphi KI-Tutor

Stelle hier deine Frage zu Delphi-Programmierung. Unser KI-Tutor hilft dir gerne, aber bitte beachte, dass du nur eine Frage pro Minute stellen kannst. Hier geht es zur Datenschutzerklärung


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ß ;)
 
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.