From Free Pascal wiki
Jump to: navigation, 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:

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

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

  1. program whileDemo(input, output, stderr);
  3. var
  4. 	x: integer;
  5. begin
  6. 	x := 1;
  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;
  14. end.

see also

Keywords: begindoelseendforifrepeatthenuntilwhile