Infinite loop
From Free Pascal wiki
Jump to navigationJump to searchThe printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
│
English (en) │
suomi (fi) │
français (fr) │
русский (ru) │
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;
Break
statement
“While
true
do
” or “repeat
until
false
” loops look infinite at first glance,
but there is a way to escape the loop through the break
statement.
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;
Optimization
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).