1. Control
Statements (2)
Lecture 4
Dr. Hakem Beitollahi
Computer Engineering Department
Soran University
2. Objectives of this lecture
In this chapter you will learn:
Iteration statements (Loop statements)
for repetition statement
while statement
do…while repetition statement
break and continue statements
Control Statements (2)— 2
4. For repetition statement (I)
General form of the for statement
for ( initialization; loopContinuationCondition; increment or decrement)
statement;
The initialization is an assignment statement that is used to set the loop
control variable.
The condition is a relational expression that determines
when the loop exits.
The increment/decrement defines how the loop control
variable changes each time the loop is repeated.
You must separate these three major sections by
semicolons.
The for loop continues to execute as long as the
condition is true.
Once the condition becomes false, program execution
resumes on the statement following the for.
Control Statements (2)— 4
5. For repetition statement (II)
for statement examples
Vary control variable from 1 to 100 in increments of 1
o for ( int i = 1; i <= 100; i++ )
Vary control variable from 100 to 1 in increments of -1
o for ( int i = 100; i >= 1; i-- )
Vary control variable from 7 to 77 in steps of 7
o for ( int i = 7; i <= 77; i += 7 )
Vary control variable from 20 to 2 in steps of -2
o for ( int i = 20; i >= 2; i -= 2 )
Vary control variable over the sequence: 2, 5, 8, 11, 14, 17, 20
o for ( int i = 2; i <= 20; i += 3 )
Vary control variable over the sequence: 99, 88, 77, 66, 55, 44,
33, 22, 11, 0
o for ( int i = 99; i >= 0; i -= 11 )
Control Statements (2)— 5
6. Execution Trace
for (int i = 0; i < 3; ++i) {
Console.WriteLine("i is“+i);
}
Console.WriteLine("all done“);
i 0
Control Statements (2)— 6
7. Execution Trace
for (int i = 0; i < 3; ++i) {
Console.WriteLine("i is“+i);
}
Console.WriteLine("all done“);
i 0
Control Statements (2)— 7
8. Execution Trace
for (int i = 0; i < 3; ++i) {
Console.WriteLine("i is“+i);
}
Console.WriteLine("all done“);
i is 0
i 0
Control Statements (2)— 8
9. Execution Trace
for (int i = 0; i < 3; ++i) {
Console.WriteLine("i is“+i);
}
Console.WriteLine("all done“);
i is 0
i 0
Control Statements (2)— 9
10. Execution Trace
for (int i = 0; i < 3; ++i) {
Console.WriteLine("i is“+i);
}
Console.WriteLine("all done“);
i is 0
i 1
Control Statements (2)— 10
11. Execution Trace
for (int i = 0; i < 3; ++i) {
Console.WriteLine("i is“+i);
}
Console.WriteLine("all done“);
i 1
Control Statements (2)— 11
12. Execution Trace
for (int i = 0; i < 3; ++i) {
Console.WriteLine("i is“+i);
}
Console.WriteLine("all done“);
i is 0
i is 1
i 1
Control Statements (2)— 12
13. Execution Trace
for (int i = 0; i < 3; ++i) {
Console.WriteLine("i is“+i);
}
Console.WriteLine("all done“);
i is 0
i is 1
i 1
Control Statements (2)— 13
14. Execution Trace
for (int i = 0; i < 3; ++i) {
Console.WriteLine("i is“+i);
}
Console.WriteLine("all done“);
i is 0
i is 1
i 2
Control Statements (2)— 14
15. Execution Trace
for (int i = 0; i < 3; ++i) {
Console.WriteLine("i is“+i);
}
Console.WriteLine("all done“);
i is 0
i is 1
i 2
Control Statements (2)— 15
16. Execution Trace
for (int i = 0; i < 3; ++i) {
Console.WriteLine("i is“+i);
}
Console.WriteLine("all done“);
i is 0
i is 1
i is 2
i 2
Control Statements (2)— 16
17. Execution Trace
for (int i = 0; i < 3; ++i) {
Console.WriteLine("i is“+i);
}
Console.WriteLine("all done“);
i is 0
i is 1
i is 2
i 2
Control Statements (2)— 17
18. Execution Trace
for (int i = 0; i < 3; ++i) {
Console.WriteLine("i is“+i);
}
Console.WriteLine("all done“);
i is 0
i is 1
i is 2
i 3
Control Statements (2)— 18
19. Execution Trace
for (int i = 0; i < 3; ++i) {
Console.WriteLine("i is“+i);
}
Console.WriteLine("all done“);
i is 0
i is 1
i is 2
i 3
Control Statements (2)— 19
20. Execution Trace
for (int i = 0; i < 3; ++i) {
Console.WriteLine("i is“+i);
}
Console.WriteLine("all done“);
i is 0
i is 1
i is 2
all done
i 3
1
Control Statements (2)— 20
22. for repetition statement (IV)
In for loops, the conditional test is always
performed at the top of the loop.
This means that the code inside the loop
may not be executed at all if the condition
is false to begin with.
Control Statements (2)— 22
23. for repetition statement (V)
for Loop Variations
One of the most common variations uses the
comma operator to allow two or more
variables to control the loop.
Example:
Control Statements (2)— 23
24. for repetition statement (VI)
The Infinite Loop with for
for loop is traditionally used for this purpose
Since none of the three expressions that form
the for loop are required, you can make an
endless loop by leaving the conditional
expression empty:
Control Statements (2)— 24
25. for repetition statement (VII)
You can exit from an infinite using break
statement
Example
Control Statements (2)— 25
26. for repetition statement (VIII)
for Loops with no Bodies
A statement may be empty
This means that the body of the for loop (or
any other loop) may also be empty.
You can use this fact to improve the efficiency
of certain algorithms and to create time delay
loops.
Example
for(i=0; i<10000; i++);
Control Statements (2)— 26
27. Good Programming Practice 5.1
Control counting loops with integer values.
Place a blank line before and after each
major control structure to make it stand out
in the program.
Control Statements (2)— 27
28. Common Programming Error 5.1
Floating-point values may be approximate,
so controlling counting loops with floating-point
variables can result in imprecise
counter values and inaccurate tests for
termination.
Control Statements (2)— 28
29. Common Programming Error 5.3
When a for structure declares its control
variable in the initialization section of the
for structure header, using the control
variable after the for structure’s body is a
compiler error.
Example:
Control Statements (2)— 29
30. Common Programming Error 5.4
Using commas in a for structure header
instead of the two required semicolons
is a syntax error.
Placing a semicolon immediately to the
right of a for structure header’s right
parenthesis makes the body of that for
structure an empty statement. This is
normally a logic error.
Control Statements (2)— 30
31. Other math operations in for portions
The initialization, loop-continuation
condition and increment or decrement
portions of a for structure can contain
arithmetic expressions.
Assume x = 2 and y = 10;
is equivalent to the statement
Control Statements (2)— 31
32. Common Programming Error 5.6
Not using the proper relational operator in
the loop-continuation condition of a loop
that counts downward (e.g., using i <= 1 in
a loop counting down to 1) is usually a
logic error that will yield incorrect results
when the program runs.
Control Statements (2)— 32
34. The while loop (I)
The second popular loop available in C/C++/C#
is the while loop.
The general form is
while(condition)
statement;
Example
Control Statements (2)— 34
40. Execution Trace Suppose input contains: 1 5 3 1 6
listSize 4
numberProcessed 0
sum 0
value --
Control Statements (2)— 40
41. Execution Trace Suppose input contains: 1 5 3 1 6
listSize 4
numberProcessed 0
sum 0
value 1
Control Statements (2)— 41
42. Execution Trace Suppose input contains: 1 5 3 1 6
listSize 4
42/77
numberProcessed 0
sum 1
value 1
43. Execution Trace Suppose input contains: 1 5 3 1 6
listSize 4
43/77
numberProcessed 1
sum 1
value 1
44. Execution Trace Suppose input contains: 1 5 3 1 6
listSize 4
numberProcessed 1
sum 1
value 1
Control Statements (2)— 44
45. Execution Trace Suppose input contains: 1 5 3 1 6
listSize 4
numberProcessed 1
sum 1
value 1
Control Statements (2)— 45
46. Execution Trace Suppose input contains: 1 5 3 1 6
listSize 4
numberProcessed 1
sum 1
value 5
Control Statements (2)— 46
47. Execution Trace Suppose input contains: 1 5 3 1 6
listSize 4
numberProcessed 1
sum 6
value 5
Control Statements (2)— 47
48. Execution Trace Suppose input contains: 1 5 3 1 6
listSize 4
numberProcessed 2
sum 6
value 5
Control Statements (2)— 48
49. Execution Trace Suppose input contains: 1 5 3 1 6
listSize 4
numberProcessed 2
sum 6
value 5
Control Statements (2)— 49
50. Execution Trace Suppose input contains: 1 5 3 1 6
listSize 4
numberProcessed 2
sum 6
value 5
Control Statements (2)— 50
51. Execution Trace Suppose input contains: 1 5 3 1 6
listSize 4
numberProcessed 2
sum 6
value 3
Control Statements (2)— 51
52. Execution Trace Suppose input contains: 1 5 3 1 6
listSize 4
numberProcessed 2
sum 9
value 3
Control Statements (2)— 52
53. Execution Trace Suppose input contains: 1 5 3 1 6
listSize 4
numberProcessed 3
sum 9
value 3
Control Statements (2)— 53
54. Execution Trace Suppose input contains: 1 5 3 1 6
listSize 4
numberProcessed 3
sum 9
value 3
Control Statements (2)— 54
55. Execution Trace Suppose input contains: 1 5 3 1 6
listSize 4
numberProcessed 3
sum 9
value 3
Control Statements (2)— 55
56. Execution Trace Suppose input contains: 1 5 3 1 6
listSize 4
numberProcessed 3
sum 9
value 1
Control Statements (2)— 56
57. Execution Trace Suppose input contains: 1 5 3 1 6
listSize 4
numberProcessed 3
sum 10
value 1
Control Statements (2)— 57
58. Execution Trace Suppose input contains: 1 5 3 1 6
listSize 4
numberProcessed 4
sum 10
value 1
Control Statements (2)— 58
59. Execution Trace Suppose input contains: 1 5 3 1 6
listSize 4
numberProcessed 4
sum 10
value 1
Control Statements (2)— 59
60. Execution Trace Suppose input contains: 1 5 3 1 6
listSize 4
numberProcessed 4
sum 10
value 1
average 2.5
Control Statements (2)— 60
61. Execution Trace Suppose input contains: 1 5 3 1 6
listSize 4
numberProcessed 4
sum 10
value 1
average 2.5
Control Statements (2)— 61
62. Another Example with while loop
Class Math include all mathematic functions.
Pow(a,b) = ab
Initialize counter variable x to 1
The condition is true (x=1<=10)
Continue looping as long as x’s value
is less than or equal to 10
Increment x by 1, which
causes x to exceed 10
eventually
Control Statements (2)— 62
66. The do-while loop (I)
Unlike for and while loops, which test the loop
condition at the top of the loop, the do-while loop
checks its condition at the bottom of the loop
This means that a do-while loop always executes
at least once.
The general form of the do-while loop is
do {
statement;
} while(condition);
Control Statements (2)— 66
67. The do-while loop (II)
Declare and initialize
control variable counter
do…while loop displays counter’s
value before testing for counter’s
Control Statements (2)— 67
69. Loop iterations
Declaring Variables within Selection and Iteration
Statements
it is possible to declare a variable within if, switch, for,
while, do..while loops
A variable declared in one of these places has its
scope limited to the block of code controlled by that
statement
/* i is local to for loop; j is known outside
loop. */
int j;
for(int i = 0; i<10; i++)
j = i * i;
/* i = 10; // *** Error *** -- i not known here!
*/
Control Statements (2)— 69
71. The return statement
The break statement
The exit() statement
The continue statement
Control Statements (2)— 71
72. The return statement
The return statement is used to return from a
function
It is categorized as a jump statement because it
causes execution to return (jump back) to the
point at which the call to the function was made.
Control Statements (2)— 72
73. The break Statement (I)
Causes immediate exit from control
structure
Used in while, for, do…while or switch
statements
The break statement has two uses:
You can use it to terminate a case in the
switch statement
You can also use it to force immediate
termination of a loop, bypassing the normal
loop conditional test
Control Statements (2)— 73
74. prints the numbers 0 through 10 on the screen. Then the loop terminates because break
causes immediate exit from the loop, overriding the conditional test t<100.
Control Statements (2)— 74
75. Programming Tip
Programmers often use the break statement
in loops in which a special condition can
cause immediate termination.
Control Statements (2)— 75
78. The continue Statement (I)
Instead of forcing termination, however, continue forces
the next iteration of the loop to take place, skipping any
code in between.
For the for loop, continue causes the conditional test
and increment portions of the loop to execute.
For the while and do-while loops, program control
passes to the conditional tests.
Control Statements (2)— 78