Embarcadero Delphi
Pętle
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.