Einzelnen Beitrag anzeigen

Popov
(Gast)

n/a Beiträge
 
#17

AW: Kopf- und Fußgesteuerte Schleifen [Verständnisfrage]

  Alt 17. Jan 2013, 14:59
@xSkuLL KiiDx

Nun ja, für einen der es verstanden hat, ist es eigentlich ganz simpel. Bei der einen Schleife ist die Abfrage oben, bei der anderen unten. Bei der einen wird zuerst abgefragt, erst dann die Anweisung ausgeführt, bei der anderen wird zuerst die Anweisung ausgeführt und dann geprüft ob sie wiederholt werden soll.

Kennst du GoTo? Verwendet man heute nicht mehr, weil man alles eigentlich auch anders lösen kann. Aber vielleicht kann man es nutzen um Schleifen zu erklären. Denn letztendlich kann man mit GoTo und If Then sowohl While do, wie auch Repeat Until nachbauen:

Mit GoTo kann man irgendwo hin springen. Dazu muss man zuerst eine Sprungmarke setzten. Das macht man mit Label.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
label
  Sprungmarke;
var
  i: Integer;
begin
  ShowMessage('Beispiel mit While do');
  i := 0;
  while i < 3 do
  begin
    ShowMessage('Der Wert ist: ' + IntToStr(i));
    i := i + 1;
  end;

  ShowMessage('Beispiel mit GoTo');
  i := 0;
  Sprungmarke: if i < 3 then
  begin
    ShowMessage('Der Wert ist: ' + IntToStr(i));
    i := i + 1;
    GoTo Sprungmarke;
  end;
end;
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
label
  Sprungmarke;
var
  i: Integer;
begin
  ShowMessage('Beispiel mit repeat until');
  i := 0;
  repeat
    ShowMessage('Der Wert ist: ' + IntToStr(i));
    i := i + 1;
  until i > 3;

  ShowMessage('Beispiel mit GoTo');
  i := 0;
  Sprungmarke:
  i := i + 1;
  ShowMessage('Der Wert ist: ' + IntToStr(i));
  if i < 3 then GoTo Sprungmarke;
end;
  Mit Zitat antworten Zitat