Title: The break and continue statements
1The break and continue statements
2Introduction
- There are 2 special statements that can affect
the execution of loop statements (such as a
while-statement) - The special statements are
- We will study their meaning and how to use these
special statements inside the while-statement
3The break statement
break
- When the break statement is executed inside a
loop-statement, the loop-statement is terminated
immediately - The execution of the program will continue with
the statement following the loop-statement
4The break statement (cont.)
5Programming example using the break statement
find the GCD
- Write a Java program that reads in 2 numbers x
and y... - and prints the largest common divisor of both x
and y
6Programming example using the break statement
find the GCD (cont.)
- Input x 24 and y 16 Â Â Â Â Â Â
- Output 8
7Programming example using the break statement
find the GCD (cont.)
- What would you do to solve this problem ?
- The lesser of the values is 16
- Therefore, all divisors are 16
8Programming example using the break statement
find the GCD (cont.)
- Check if 16 and 24 are divisible by 16 no
- Check if 16 and 24 are divisible by 15 no
- ...
- Check if 16 and 24 are divisible by 10 no
- Check if 16 and 24 are divisible by 9 no
- Check if 16 and 24 are divisible by 8 YES
- Print 8 and STOP
9Programming example using the break statement
find the GCD (cont.)
input x, y min min(x, y) // this is
the range of the brute force search for every
value a min, min-1, min-2, ..., 1 do
if (x and y are divisible by a)
print a exit the while loop !!!
10Programming example using the break statement
find the GCD (cont.)
- Algorithm (structured diagram)
11Programming example using the break statement
find the GCD (cont.)
import java.util.Scanner public class
GCD01 public static void main(String
args) Scanner in new
Scanner(System.in) int x, y, a, min 0
x in.nextInt() // Read in number
y in.nextInt() // Read in number
if ( x lt y ) min x else min
y
12Programming example using the break statement
find the GCD (cont.)
- a min
-
- while ( a gt 1 ) // Run a
min(x,y), min(x,y)-1, ..., 1 -
- if ( x a 0 y a 0 )
- // a is a divisor of x and y
- System.out.println(a) // Print a
(because it's a common divisor) -
- break // Exit while
loop !!! (Only need the largest) -
- else
-
- a-- // Move to the
next number !! -
-
-
-
13Programming example using the break statement
find the GCD (cont.)
- Example Program (Demo above code)
- Prog file http//mathcs.emory.edu/cheung/Courses
/170/Syllabus/07/Progs/GCD01.java - How to run the program      Â
- Right click on link and save in a scratch
directory - To compile  javac GCD01.java
- To run         java GCD01
14The continue statement
continue
15The continue statement (cont.)
- When the continue statement is executed inside a
loop-statement, the program will skip over the
remainder of the loop-body to the end of the loop
- Note
- What happens next when the program reaches the
end of a loop depends on the type of loop
statement !!!
16The continue statement (cont.)
- Effect of a continue statement in a while-loop
- As given previously
- In the case of a while-loop, when the program
reaches end of the loop, the program will jump
back to the testing of the loop-continuation-condi
tion
- the program will skip over the remainder of the
loop-body to the end of the loop
17The continue statement (cont.)
18Programming example using the continue statement
find all divisors of a number
- Write a Java program that reads in an integer
n... - and prints all its divisors
19Programming example using the continue statement
find all divisors of a number (cont.)
- Previously discussed solution
- We try every number a 1, 2, ..., n
- For each number a, we check if n a 0.
20Programming example using the continue statement
find all divisors of a number (cont.)
- We can re-write the same algorithm differently
using a continue statement as follows
21Programming example using the continue statement
find all divisors of a number (cont.)
- Notice that the if-condition has been changed to
x a ! 0, meaning a is not a divisor of x - When a is not a divisor of x, (the then-part),
we increment a (to try next number) and jump to
the end of the while-loop using the continue
statement. - When x a ! 0 is false, the program will print
a and increment a (to try next number)
22Programming example using the continue statement
find all divisors of a number (cont.)
public class Continue01 public static
void main(String args) Scanner in
new Scanner(System.in) int n, a n
in.nextInt() // Read in number
a 1
23Programming example using the continue statement
find all divisors of a number (cont.)
- while ( a lt n ) // Run a 1, 2,
..., n -
- if ( n a ! 0 )
- // a is NOT a divisor of n
- a
- continue // Jump to end of
while loop -
-
- / ----------------------------------------
------ - We reach here ONLY when "n a ! 0" is
FALSE - I.e. a is a divisor of x
- ----------------------------------------
------ / - System.out.println(a) // Print a
(because it's a divisor) - a // Make sure we
more to the next number !! - // or else infinite loop !!!
-
-
-
24Programming example using the continue statement
find all divisors of a number (cont.)
- Example Program (Demo above code)
- Prog file http//mathcs.emory.edu/cheung/Courses
/170/Syllabus/07/Progs/Continue01.java - How to run the program      Â
- Right click on link and save in a scratch
directory - To compile  javac Continue01.java
- To run         java Continue01
25Programming advice
- Good programming practice
- A computer program will be easier to understand
if it is transparent. - One way to improve transparency is a consistent
flow of control Meaning, the program always take
the same path of execution - The break and the continue commands will alter
the flow of control Therefore, they make a
computer program less transparent - It is a general recommendation to avoid using
break and continue statements when you can write
the algorithm easily without them.