Sök…


Syntax

  • för OrdinalVariable: = LowerOrdinalValue to UpperOrdinalValue börjar {loop-body} end;
  • för OrdinalVariable: = UpperOrdinalValue down to LowerOrdinalValue börjar {loop-body} end;
  • för EnumerableVariable in Collection börjar {loop-body} slut;

Anmärkningar

  • Delphis syntax for -loop ger ingenting för att ändra stegbeloppet från 1 till något annat värde.
  • Vid slingning med variabla ordinära värden, t.ex. lokala variabler av typen Integer , bestäms de övre och nedre värdena endast en gång. Ändringar av sådana variabler har ingen effekt på iterationsräkningen för slingor.

Enkelt för slinga

A for slinga itererar från startvärdet till slutvärdet inklusive.

program SimpleForLoop;

{$APPTYPE CONSOLE}

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

Produktion:

1
2
3
4
5
6
7
8
9
10

Looping över tecken i en sträng

2005

Följande iterates över tecknen i strängen s . Det fungerar på liknande sätt för att slinga över elementen i en matris eller en uppsättning, så länge typen av slingkontrollvariabeln ( c , i det här exemplet) matchar elementtypen för värdet som itereras.

program ForLoopOnString;

{$APPTYPE CONSOLE}

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

Produktion:

E
x
en
m
p
l
e

Omvänd riktning för slinga

A for slinga iterates från startvärdet ned till slutvärdet inklusive, som ett "nedräkning" -exempel.

program CountDown;

{$APPTYPE CONSOLE}

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

Produktion:

10
9
8
7
6
5
4
3
2
1
0

För slinga med en uppräkning

A for slinga iterera igenom artiklar i en uppräkning

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.

Produktion:

söndag
måndag
tisdag
onsdag
torsdag
fredag
lördag

För i matris

A for slinga iterera igenom objekt i en matris

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.

Produktion:

1,1
2,2
3,3



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow