Embarcadero Delphi
För öglor
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ån1
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