While

From Free Pascal wiki
Revision as of 16:52, 20 November 2020 by Kai Burghardt (talk | contribs) (Undo revision 140570 by Rfc1394 (talk): ensure reserved words are highlighted as such, remove incorrect information, ensure every sentence spans exactly one source code line for better diffs)
Jump to navigationJump to search

Deutsch (de) English (en) suomi (fi) français (fr) русский (ru)

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 block (or single statement) is executed. This is the main difference to a repeat  until-loop, where the block is executed at any rate, but succeeding iterations do not necessarily happen, though.

The following example contains unreachable code:

1program whileFalse(input, output, stderr);
2
3begin
4	while false do
5	begin
6		writeLn('never gets printed');
7	end;
8end.

You usually use while-loops where, in contrast to for-loops, a running index variable is not required, the block 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).

 1program whileDemo(input, output, stderr);
 2
 3var
 4	x: integer;
 5begin
 6	x := 1;
 7	
 8	// prints non-negative integer powers of two
 9	while x < high(x) div 2 do
10	begin
11		writeLn(x);
12		inc(x, x); // x := x + x
13	end;
14end.

see also


Keywords: begindoelseendforifrepeatthenuntilwhile