An infinite loop (also known as an endless loop or unproductive loop or a continuous loop) is a loop which never ends. Inside a loop, statements are repeated forever.
There are two implementations of an infinite loop:
while true do begin // loop body repeated forever end;
repeat begin // loop body repeated forever end until false;
var i:integer; begin i := 0; while true do begin i := i + 1; if i = 100 then break; end; end;
var i:integer; begin i := 0; repeat i := i + 1; if i = 100 then break; until false; end;
If you really need an infinite loop, it is better to use
repeat … until false;, since it shifts all instructions of the body “less” to the right (at least, if there is more than one statement in the loop).