Szukaj…


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;

Uwagi

  • Składnia Delphi for -loop nie zapewnia niczego, by zmienić krok kroku z 1 na jakąkolwiek inną wartość.
  • Podczas zapętlania ze zmiennymi wartościami porządkowymi, np. Zmiennymi lokalnymi typu Integer , górne i dolne wartości zostaną określone tylko raz. Zmiany takich zmiennych nie będą miały wpływu na liczbę iteracji pętli.

Prosty do pętli

Pętla for iteruje od wartości początkowej do wartości końcowej włącznie.

program SimpleForLoop;

{$APPTYPE CONSOLE}

var
  i : Integer;
begin
  for i := 1 to 10 do
    WriteLn(i);
end.

Wynik:

1
2)
3)
4
5
6
7
8
9
10

Pętla nad znakami ciągu

2005

Poniżej iteruje się po znakach ciągu s . Działa podobnie do zapętlania elementów tablicy lub zestawu, o ile typ zmiennej sterującej pętlą ( c , w tym przykładzie) odpowiada typowi elementu iterowanej wartości.

program ForLoopOnString;

{$APPTYPE CONSOLE}

var
  s : string;
  c : Char;
begin
  s := 'Example';
  for c in s do
    WriteLn(c);
end.

Wynik:

mi
x
za
m
p
l
mi

Odwrotny kierunek pętli

Pętla for iteruje od wartości początkowej do wartości końcowej włącznie, jako przykład „odliczania”.

program CountDown;

{$APPTYPE CONSOLE}

var
  i : Integer;
begin
  for i := 10 downto 0 do
    WriteLn(i);
end.

Wynik:

10
9
8
7
6
5
4
3)
2)
1
0

Dla pętli za pomocą wyliczenia

Pętla for iteruje elementy w wyliczeniu

program EnumLoop;

uses
  TypInfo;

type
  TWeekdays = (Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday);

var
  wd : TWeekdays;
begin

  for wd in TWeekdays do
    WriteLn(GetEnumName(TypeInfo(TWeekdays), Ord(wd)));

end.

Wynik:

niedziela
poniedziałek
wtorek
środa
czwartek
piątek
sobota

Do w tablicy

Pętla for iteruje elementy w tablicy

program ArrayLoop;
{$APPTYPE CONSOLE}  
const a : array[1..3] of real = ( 1.1, 2.2, 3.3 );
var f : real;
begin
  for f in a do
    WriteLn( f );    
end.

Wynik:

1,1
2,2
3,3



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