Difference between revisions of "While"
(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: begin — do — else — end — for — if — repeat — then — until — while