Difference between revisions of "Basic Pascal Tutorial/Chapter 3/WHILE..DO"

From Free Pascal wiki
Jump to navigationJump to search
Line 2: Line 2:
  
 
The pretest loop has the following format:
 
The pretest loop has the following format:
<font color="#006699"><strong>while</strong></font> BooleanExpression <font color="#006699"><strong>do</strong></font>
+
<delphi>
  statement<font color="#000000"><strong>;</strong></font>
+
while BooleanExpression do
 +
  statement;
 +
</delphi>
  
 
The loop continues to execute until the Boolean expression becomes <tt>FALSE</tt>. In the body of the loop, you must somehow affect the Boolean expression by changing one of the variables used in it. Otherwise, an infinite loop will result:
 
The loop continues to execute until the Boolean expression becomes <tt>FALSE</tt>. In the body of the loop, you must somehow affect the Boolean expression by changing one of the variables used in it. Otherwise, an infinite loop will result:
a <font color="#000000"><strong>:=</strong></font> <font color="#ff0000">5</font><font color="#000000"><strong>;</strong></font>
+
<delphi>
<font color="#006699"><strong>while</strong></font> a <font color="#000000"><strong>&lt;</strong></font> <font color="#ff0000">6</font> <font color="#006699"><strong>do</strong></font>
+
a := 5;
  writeln <font color="#000000"><strong>(</strong></font>a<font color="#000000"><strong>)</strong></font><font color="#000000"><strong>;</strong></font>
+
while a < 6 do
 +
  writeln (a);
 +
</delphi>
  
 
Remedy this situation by changing the variable's value:
 
Remedy this situation by changing the variable's value:
a <font color="#000000"><strong>:=</strong></font> <font color="#ff0000">5</font><font color="#000000"><strong>;</strong></font>
+
<delphi>
<font color="#006699"><strong>while</strong></font> a <font color="#000000"><strong>&lt;</strong></font> <font color="#ff0000">6</font> <font color="#006699"><strong>do</strong></font>
+
a := 5;
<font color="#006699"><strong>begin</strong></font>
+
while a < 6 do
  writeln <font color="#000000"><strong>(</strong></font>a<font color="#000000"><strong>)</strong></font><font color="#000000"><strong>;</strong></font>
+
begin
  a <font color="#000000"><strong>:=</strong></font> a <font color="#000000"><strong>+</strong></font> <font color="#ff0000">1</font>
+
  writeln (a);
<font color="#006699"><strong>end</strong></font><font color="#000000"><strong>;</strong></font>
+
  a := a + 1
 +
end;
 +
</delphi>
  
 
The <tt>WHILE ... DO</tt> loop is called a pretest loop because the condition is tested before the body of the loop executes. So if the condition starts out as <tt>FALSE</tt>, the body of the <tt>while</tt> loop never executes.
 
The <tt>WHILE ... DO</tt> loop is called a pretest loop because the condition is tested before the body of the loop executes. So if the condition starts out as <tt>FALSE</tt>, the body of the <tt>while</tt> loop never executes.

Revision as of 15:51, 5 January 2010

3Db - WHILE..DO (author: Tao Yue, state: unchanged)

The pretest loop has the following format: <delphi> while BooleanExpression do

 statement;

</delphi>

The loop continues to execute until the Boolean expression becomes FALSE. In the body of the loop, you must somehow affect the Boolean expression by changing one of the variables used in it. Otherwise, an infinite loop will result: <delphi> a := 5; while a < 6 do

 writeln (a);

</delphi>

Remedy this situation by changing the variable's value: <delphi> a := 5; while a < 6 do begin

 writeln (a);
 a := a + 1

end; </delphi>

The WHILE ... DO loop is called a pretest loop because the condition is tested before the body of the loop executes. So if the condition starts out as FALSE, the body of the while loop never executes.

previous contents next