Szukaj…


Wprowadzenie

Język Delphi zapewnia 3 rodzaje pętli

for - iterator dla ustalonej sekwencji nad liczbą całkowitą, łańcuchem, tablicą lub wyliczeniem

repeat-until - warunek zakończenia sprawdzany jest po każdej turze, pętla wykonuje się co najmniej raz

while do warunek while do -do sprawdza się przed każdym zakrętem, pętla nigdy nie może zostać wykonana

Składnia

  • for OrdinalVariable: = LowerOrdinalValue do UpperOrdinalValue do begin {loop-body} end;
  • for OrdinalVariable: = UpperOrdinalValue downto LowerOrdinalValue do begin {loop-body} end;
  • dla EnumerableVariable in Collection do begin {loop-body} end;
  • powtarzaj {loop-body} do {warunek przerwania};
  • while {condition} do begin {loop-body} end;

Przerwij i kontynuuj w pętlach

program ForLoopWithContinueAndBreaks;

{$APPTYPE CONSOLE}

var
  var i : integer;
begin
  for i := 1 to 10 do
    begin
      if i = 2 then continue; (* Skip this turn *)
      if i = 8 then break;    (* Break the loop *)
      WriteLn( i );
    end;
  WriteLn('Finish.');
end.

Wynik:

1
3)
4
5
6
7
Koniec.

Powtarzać dopóki

program repeat_test;

{$APPTYPE CONSOLE}

var s : string;
begin
  WriteLn( 'Type a words to echo. Enter an empty string to exit.' );
  repeat
    ReadLn( s );
    WriteLn( s );
  until s = '';
end.

Ten krótki przykładowy wydruk na konsoli Type a words to echo. Enter an empty string to exit. , poczekaj na typ użytkownika, powtórz go i czekaj ponownie w nieskończonej pętli - aż użytkownik wprowadzi pusty ciąg.

Chociaż tak

program WhileEOF;
{$APPTYPE CONSOLE}
uses SysUtils;

const cFileName = 'WhileEOF.dpr';
var F : TextFile;
s : string;
begin
  if FileExists( cFileName )
    then
      begin
        AssignFile( F, cFileName );
        Reset( F );

        while not Eof(F) do
          begin
            ReadLn(F, s);
            WriteLn(s);
          end;

        CloseFile( F );
      end
    else
      WriteLn( 'File ' + cFileName +  ' not found!' );
end.

W tym przykładzie wydrukowano, aby WhileEOF.dpr zawartość WhileEOF.dpr pliku WhileEOF.dpr , używając WhileEOF.dpr While not(EOF) . Jeśli plik jest pusty, wówczas ReadLn-WriteLn nie jest wykonywana.



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow