Difference between revisions of "While"

From Free Pascal wiki
Jump to navigationJump to search
(more content)
m (highlight source code lines containing “while”)
Line 6: Line 6:
  
 
The following example contains unreachable code:
 
The following example contains unreachable code:
<syntaxhighlight lang="pascal" line start="0">
+
<syntaxhighlight lang="pascal" line start="0" highlight="4">
 
program whileFalse(input, output, stderr);
 
program whileFalse(input, output, stderr);
  
Line 18: Line 18:
  
 
You usually use <syntaxhighlight lang="pascal" enclose="none">while</syntaxhighlight>-loops where, in contrast to [[For|<syntaxhighlight lang="pascal" enclose="none">for</syntaxhighlight>-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|<syntaxhighlight lang="pascal" enclose="none">break</syntaxhighlight>-statement]] (which usually indicates bad programming style).
 
You usually use <syntaxhighlight lang="pascal" enclose="none">while</syntaxhighlight>-loops where, in contrast to [[For|<syntaxhighlight lang="pascal" enclose="none">for</syntaxhighlight>-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|<syntaxhighlight lang="pascal" enclose="none">break</syntaxhighlight>-statement]] (which usually indicates bad programming style).
<syntaxhighlight lang="pascal" line start="0">
+
<syntaxhighlight lang="pascal" line start="0" highlight="9">
 
program whileDemo(input, output, stderr);
 
program whileDemo(input, output, stderr);
  
Line 30: Line 30:
 
begin
 
begin
 
writeLn(x);
 
writeLn(x);
inc(x, x);
+
inc(x, x); // x := x + x
 
end;
 
end;
 
end.
 
end.

Revision as of 16:49, 14 February 2018

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:

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

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

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

see also


Keywords: begindoelseendforifrepeatthenuntilwhile