Embarcadero Delphi

Loops

Introduction#

Delphi language provide 3 types of loop

for - iterator for fixed sequence over integer, string, array or enumeration

repeat-until - quit condition is checking after each turn, loop executing at minimum once tmeeven

while do - do condition is checking before each turn, loop could be never executed

Syntax#

  • for OrdinalVariable := LowerOrdinalValue to UpperOrdinalValue do begin {loop-body} end;
  • for OrdinalVariable := UpperOrdinalValue downto LowerOrdinalValue do begin {loop-body} end;
  • for EnumerableVariable in Collection do begin {loop-body} end;
  • repeat {loop-body} until {break-condition};
  • while {condition} do begin {loop-body} end;

Break and Continue in Loops

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.

Output:

1
3
4
5
6
7
Finish.

Repeat-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.

This short example print on console Type a words to echo. Enter an empty string to exit., wait for user type, echo it and waiting input again in infinite loop - until user entering the empty string.

While do

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.

This example print to console the text content of WhileEOF.dpr file using While not(EOF) condition. If file is empty then ReadLn-WriteLn loop is not executed.


This modified text is an extract of the original Stack Overflow Documentation created by the contributors and released under CC BY-SA 3.0 This website is not affiliated with Stack Overflow