サーチ…


前書き

Delphi言語は3つのタイプのループを提供します

for - 整数、文字列、配列または列挙型の固定シーケンスのイテレータ

repeat-until -quit条件は各ターンの後にチェックし、ループは最低でも1回実行するtmeeven

while do -do条件は各ターンの前にチェックしていますが、ループは決して実行できません

構文

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

ループで中断し続ける

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.

出力:

1
3
4
5
6
7
完了。

繰り返し - Until

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.

コンソール上のこの短い例の印刷Type a words to echo. Enter an empty string to exit.ユーザのタイプを待って、それをエコーし​​、無限ループで再び入力を待つ - ユーザが空文字列を入力するまで。

しばらく

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.

この例では、 While not(EOF)条件を使用して、 WhileEOF.dprファイルのテキスト内容をコンソールにWhileEOF.dprます。 fileが空の場合、 ReadLn-WriteLnループは実行されません。



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