Sign in Join
Wiki copytemporary

Revision 1 of 1, by Kai Burghardt on 1-25-2023. The page as it is now.

While

while in conjunction with do repeats a statement as long as a condition evaluates to true. The condition expression is evaluated prior each iteration, determining whether the following statement is executed. This is the main difference to a repeat … until-loop, where the loop body is executed at any rate, but succeeding iterations do not necessarily happen, though.

The following example contains unreachable code:

pascal
program whileFalse(input, output, stderr);

begin
    while false do
    begin
        writeLn('never gets printed');
    end;
end.

You usually use while-loops where, in contrast to for-loops, a running index variable is not required, the statement executed can't be deduced from an index that's incremented by one, or to avoid a break-statement (which usually indicates bad programming style).

pascal
program whileDemo(input, output, stderr);

var
    x: integer;
begin
    x := 1;
    
    // prints non-negative integer powers of two
    while x < high(x) div 2 do
    begin
        writeLn(x);
        inc(x, x); // x := x + x
    end;
end.

see also


From the Free Pascal wiki, page "While", as it stood on 2023-01-25 after a change by Kai Burghardt, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's Licensing page. If you have concerns about this material, message the admin.