Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 27

Control Structures II: Repetition

Chapter Objectives

• Learn about repetition (looping) control structures


• Explore how to construct and use count-controlled, sentinel-controlled, flag-
controlled, and EOF-controlled repetition structures
• Examine break and continue statements
• Discover how to form and use nested control structures

2
Why Is Repetition Needed?

• There are many situations in which the same statements need to be executed
several times
• Example
– Formulas used to find average grades for students in a class

3
The while Looping (Repetition) Structure

• Syntax
while (expression)
statement
• Expression is always true in an infinite loop
• Statements must change value of expression to false

4
The while Looping (Repetition) Structure …

5
The while Looping (Repetition) Structure …

Example 5-1
i = 0; //Line 1
while (i <= 20) //Line 2
{
System.out.print(i + " "); //Line 3
i = i + 5; //Line 4
}

System.out.println(); //Line 5

Output:
0 5 10 15 20

6
The while Looping (Repetition) Structure …

• Typically, while loops are written in the following


form:

7
Counter-Controlled while Loop
• Used when exact number of data or entry pieces is
known
• General form:

8
Sentinel-Controlled while Loop
• Used when exact number of entry pieces is unknown but
last entry (special/sentinel value) is known
• General form:

9
Flag-Controlled while Loop
• Boolean value used to control loop
• General form:

10
EOF(End of File)-Controlled while Loop

• Used when input is from files


• Sentinel value is not always appropriate
• In an EOF-controlled while loop that uses the
Scanner object console to input data,
console acts at the loop control variable
• The method hasNext, of the class Scanner,
returns true if there is an input in the input
stream; otherwise it returns false

11
EOF(End of File)-Controlled while Loop …
• The expression console.hasNext() evaluates to
true if there is an input in the input stream; otherwise it
returns false
• Expressions such as console.nextInt() act as the
loop condition
• A general form of the EOF-controlled while loop that
uses the Scanner object console to input data is of the
form:

12
EOF(End of File)-Controlled while Loop …

• Suppose that inFile is a Scanner object initialized to


the input file; in this case, the EOF-controlled while
loop takes the following form:

13
The for Looping (Repetition) Structure

• Specialized form of while loop


• Simplifies the writing of count-controlled loops
• Syntax:

for (initialization; condition; update)


statement;

14
The for Looping (Repetition) Structure
(continued)
• Execution
– Initial statement executes
– The loop condition evaluated
– If loop condition evaluates to true, execute for
loop statement and execute update statement
– Repeat until loop condition is false

15
The for Looping (Repetition) Structure …

16
The for Looping (Repetition) Structure …

Example: The following for loop prints the first 10


nonnegative integers:

for (i = 0; i < 10; i++)


System.out.print(i + " ");

System.out.println();

17
The for Looping (Repetition) Structure …
Example
1. The following for loop outputs the word Hello and a star (on separate
lines) five times:
for (i = 1; i <= 5; i++)
{
System.out.println("Hello");
System.out.println("*");
}
2.
for (i = 1; i <= 5; i++)
System.out.println("Hello");
System.out.println("*");
This loop outputs the word Hello five times and the star only once

18
The for Looping (Repetition) Structure …

• Does not execute if initial condition is false


• Update expression changes value of loop control
variable, eventually making it false
• If logical expression is always true, result is an
infinite loop
• Infinite loop can be specified by omitting all three
control statements

19
The for Looping (Repetition) Structure …

• If logical expression is omitted, it is assumed to be


true
• for statement ending in semicolon is empty

20
The do…while Loop (Repetition) Structure
• Syntax:

• Statements executed first, then logical


expression evaluated
• Statement(s) executed at least once then continued if
logical expression is true

21
do…while Loop (Post-test Loop)

22
break Statements

• Used to exit early from a loop


• Used to skip remainder of switch structure
• Can be placed within if statement of a loop
– If condition is met, loop exited immediately

23
continue Statements
• Used in while, for, and do...while structures
• When executed in a loop, the remaining
statements in the loop are skipped; proceeds with
the next iteration of the loop
• When executed in a while/do…while
structure, expression evaluated immediately after
continue statement
• In a for structure, the update expression is
executed after the continue statement; then the
loop condition executes
24
Nested Control Structures

• Provides new power, subtlety, and complexity


• if, if…else, and switch structures can be placed within while loops
• for loops can be found within other for loops

25
Nested Control Structures (Example)
for (int i = 1; i <= 5; i++)
{
for (int j = 1; j <= i; j++)
System.out.print(" *");

System.out.println();
}

• Output:
*
**
***
****
*****
26
Chapter Summary
• Looping Mechanisms
– Counter-controlled while loop
– Sentinel-controlled while loop
– Flag-controlled while loop
– EOF-controlled while loop
– for loop
– do…while loop
• break statements
• continue statements
• Nested control structures

27

You might also like