サーチ…


構文

  • OrdinalVariable:= LowerOrdinalValueをUpperOrdinalValueにするdo begin {loop-body} end;
  • OrdinalVariable:= UpperOrdinalValue downto LowerOrdinalValue do begin {ループボディ} end;
  • コレクションのEnumerableVariableに対してdo begin {loop-body} end;

備考

  • デルファイのfor -loop構文からステップ量を変更するには何も提供していない1以外の値にします。
  • 変数ordinal値、たとえばInteger型のローカル変数を使用してループする場合、上限値と下限値は1回だけ決定されます。そのような変数への変更は、ループ反復回数に影響しません。

シンプルなループ

forループは、開始値から終了値まで繰り返します。

program SimpleForLoop;

{$APPTYPE CONSOLE}

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

出力:

1
2
3
4
5
6
7
8
9
10

文字列の文字をループする

2005年

以下は、文字列s文字を繰り返し処理します。これは、ループ制御変数(この例ではc )のタイプが反復される値の要素タイプと一致する限り、配列またはセットの要素をループする場合と同様に機能します。

program ForLoopOnString;

{$APPTYPE CONSOLE}

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

出力:

E
バツ
a
m
p
l
e

ループの逆方向

forループは、「カウントダウン」の例として、開始値から終了値までを反復します。

program CountDown;

{$APPTYPE CONSOLE}

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

出力:

10
9
8
7
6
5
4
3
2
1
0

列挙を使用するループの場合

forループは、列挙の項目を反復処理します。

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.

出力:

日曜日
月曜
火曜日
水曜日
木曜日
金曜日
土曜日

配列の場合

forループは配列内の項目を反復処理します。

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.

出力:

1,1
2,2
3,3



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow