Upload
polly-hutchinson
View
230
Download
2
Tags:
Embed Size (px)
Citation preview
1
do-while Statement
2
Do-While Statement
Is a looping control structure in which the loop condition is tested after each iteration of the loop.
SYNTAX
do
{
Statement
} while ( Expression ) ;
Loop body statement can be a single statement or a block.
3
Do-While Loop vs. While Loop
POST-TEST loop (exit-condition)
The looping condition is tested after executing the loop body.
Loop body is always executed at least once.
PRE-TEST loop (entry-condition)
The looping condition is tested before executing the loop body.
Loop body may not be executed at all.
4
Do-While Loop
When the expression is tested and found to be false, the loop is exited and control passes to the statement that follows the do-while statement.
Statement
Expression
DO
WHILE
FALSE
TRUE
while v. do-while CCL while v. do-while CCL
sum = 0;
counter = 1;
while (counter <= n)
{
sum = sum + counter;
counter++;
}
Pretest Loop
sum = 0;
counter = 1;
do
{
sum = sum + counter;
counter++;
} while (counter <= n)
// Note Sum=1 if n=0
Posttest Loop Loop always executes at
least once
6
for Statement
7
A Count-Controlled Loop
SYNTAX
for ( initialization ; test expression ; update )
{
0 or more statements to repeat
}
8
The for loop contains
an initialization
an expression to test for continuing
an update to execute after each iteration of the body
9
Example of Repetition
for ( int num = 1 ; num <= 3 ; num++ )
{
println(num + " Potato");
}
10
Example of Repetition num
var num;
for ( num = 1 ; num <= 3 ; num++ )
println(num + " Potato");
OUTPUT
?
11
Example of Repetition num
OUTPUT
1
var num;
for ( num = 1 ; num <= 3 ; num++ )
println(num + " Potato");
12
Example of Repetition num
OUTPUT
1
var num;
for ( num = 1 ; num <= 3 ; num++ )
println(num + " Potato");
true
13
Example of Repetition num
var num;
for ( num = 1 ; num <= 3 ; num++ )
println(num + " Potato");
OUTPUT
1
1Potato
14
Example of Repetition num
OUTPUT
2
var num;
for ( num = 1 ; num <= 3 ; num++ )
println(num + " Potato");
1Potato
15
Example of Repetition num
OUTPUT
2
true
1Potato
var num;
for ( num = 1 ; num <= 3 ; num++ )
println(num + " Potato");
16
Example of Repetition num
var num;
for ( num = 1 ; num <= 3 ; num++ )
println(num + " Potato");
OUTPUT
2
1Potato
2Potato
17
Example of Repetition num
OUTPUT
3
var num;
for ( num = 1 ; num <= 3 ; num++ )
println(num + " Potato");
1Potato
2Potato
18
Example of Repetition num
OUTPUT
3
true
1Potato
2Potato
var num;
for ( num = 1 ; num <= 3 ; num++ )
println(num + " Potato");
19
Example of Repetition num
var num;
for ( num = 1 ; num <= 3 ; num++ )
println(num + " Potato");
OUTPUT
3
1Potato
2Potato
3Potato
20
Example of Repetition num
OUTPUT
4
var num;
for ( num = 1 ; num <= 3 ; num++ )
println(num + " Potato");
1Potato
2Potato
3Potato
21
Example of Repetition num
OUTPUT
4
false
1Potato
2Potato
3Potato
var num;
for ( num = 1 ; num <= 3 ; num++ )
println(num + " Potato");
22
Example of Repetition num
When the loop control condition is evaluated and has value false, theloop is said to be “satisfied” and control passes to the statementfollowing the For statement.
4
falsevar num;
for ( num = 1 ; num <= 3 ; num++ )
println(num + " Potato");
23
The output was:
1Potato2Potato3Potato
24
for (var count = 4 ; count > 0 ; count-- )
{
println(count);
}
println(“Done”);
Count-controlled Loop
OUTPUT: 4321Done
25
What is output?
for ( var count = 0 ; count < 10 ; count++ )
{
println('*');
}
26
OUTPUT
**********
NOTE: the 10 asterisks are all on one line. Why?
Count Control Loop Example
Display integers and their squares from 1 through 10.
for (var i = 1; i <= 10; i++) println(i + " " + i*i);
For example
Display even integers and their squares from 1 through 10.
for (var i = 2; i <= 10; i = i+2) println(i + " " + i*i);
For example
Display integers and their squares from 10 down to 1.
for (var i = 10; i >= 1; i--) println(i + " " + i*i);
For example
Find square roots of 1.1, 1.2, 1.3, ..., 2.0
for (var x = 1.1; x <= 2.0; x =x+0.1)
println(x + " " + sqrt(x));
Compute and return n! = 1 2 3 ... n.
var product = 1;
for (var i = 2; i <= n; i++)
product = product * i;
For example
32
What output from this loop?
for (var count = 0; count < 10; count++) ;
{
println(“”);
}
33
no output from the for loop! Why? the ; right after the ( ) means that the body
statement is a null statement in general, the Body of the for loop is whatever
statement immediately follows the ( ) that statement can be a single statement, a
block, or a null statement actually, the code outputs one * after the loop
completes its counting to 10
OUTPUT
Display all divisors of each integer from 1
through 50
for (int num = 1; num <= 50; num++)
{
cout << num << " has divisors:\n\t'';
for (int div = 1; div <= num/2; div++)
if (num % div == 0)
cout << div << ", '';
cout << num << endl;
} // See divisors.cpp
Table of 2nTable of 2n
const int tableSize = 20;
long valueSquared = 1;
cout << "n" << " " << "2**n" << endl;
for (int n = 0; n <= tableSize; ++n) {
cout << n << " " << valueSquared << endl;valueSquared = valueSquared * 2;
}
Eliminating WhileExpressionEliminating WhileExpression
The while condition is also optional If omitted the value defaults to true
for ( ; ; )
println("Hi");
while (1)
println("Hi");
Changing the values of any variables involved in the loop condition inside the body of the loop may change the number of repetitions & may result in an infinite loop
for (i = 1; i <= 10; i++)
{
println(i);
i++;
}
Monkeying with LCVs: PPPMonkeying with LCVs: PPP
38
Break Statement
break statement can be used with Switch or any of the 3 looping structures
it causes an immediate exit from the Switch, While, Do-While, or For statement in which it appears
if the break is inside nested structures, control exits only the innermost structure containing it
Use break As a Last ResortUse break As a Last Resort
It can become a crutch Think carefully about loop design for loop on right is better
i = 1;
while (1) for (i = 1; i <= 5; i++)
{ println(i);
println(i);
if (i == 5)
break;
i++;
}
40
Continue Statement
continue is valid only within loops
terminates the current loop iteration, but not the entire loop
in a For or While, continue causes the rest of the body statement to be skipped--in a For statement, the update is done
in a Do-While, the exit condition is tested, and if true, the next loop iteration is begun