Debre Tabor University
Faculty of Technology
Department of Electrical and Computer
Engineering
Object oriented programing
Lecture 3 : CONTROL STRACTURE
Program Flow
• Java will execute the a more sophisticated program
statements in your code in a statement
specific sequence, or "flow".
• The "flow" of the program statement
and can be described
through a "flow diagram":
statement statement
a simple program
statement
statement
statement
statement
statement statement
What are Control Structures?
• Control structures alter the flow of the
program, the sequence of statements that
are executed in a program.
• They act as "direction signals" to control
the path a program takes.
• Two types of control structures in Java:
– decision statements
– loops
Decision Statements
• A decision statement allows the
code to execute a statement or
block of statements conditionally.
• Two types of decisions statements
in Java:
– if statements
– switch statements
If Statement
if (expression) {
statement;
}
rest_of_program;
• expression must evaluate to a boolean value, either
true or false
• If expression is true, statement is executed and
then rest_of_program
• If expression is false, statement is not executed
and the program continues at rest_of_program
If Statement Flow Diagram
The if decision statement executes
a statement if an expression is true
Is expression no
true?
if (expression) { yes
statement1;
} execute
statement
rest_of_program
execute
rest_of_program
If-Else Statement
if (expression) {
statement1;
}
else{
statement2;
}
next_statement;
• Again, expression must produce a boolean value
• If expression is true, statement1 is executed and
then next_statement is executed.
• If expression is false, statement2 is executed and
then next_statement is executed.
If-Else Flow Diagram
The if-else decision
statement executes a
is
statement if an expression yes no
“expression”
is true and a different true?
statement if it is not true.
if (expression){ execute execute
statement1 statement2
statement1;
} else {
statement2;
} execute
rest_of_program rest_of_program
Chained If-Else Statements
if (grade == 'A')
System.out.println("You got an A.");
else if (grade == 'B')
System.out.println("You got a B.");
else if (grade == 'C')
System.out.println("You got a C.");
else
System.out.println("You got an F.");
Switch Statements
• The switch statement enables you to test several cases
generated by a given expression.
• For example:
switch (expression) {
case value1:
statement1;
case value2:
statement2;
default:
default_statement;
}
Every statement after the true case is executed
• The expression must evaluate to a char, byte, short
or int, but not long, float, or double.
expression
y
equals Do value1 thing
value1?
switch (expression){
case value1:
// Do value1 thing n
case value2:
// Do value2 thing
expression y
equals Do value2 thing
...
default: value2?
// Do default action
}
// Continue the program n
Do default action
Continue the
program
Break Statements in Switch Statements
• The break statement tells the computer to exit
the switch statement
• For example:
switch (expression) {
case value1:
statement1;
break;
case value2:
statement2;
break;
default:
default_statement;
break;
}
switch (expression){ expression y
case value1: equals Do value1 thing break
// Do value1 thing value1?
break;
case value2: n
// Do value2 thing
break;
expression y
... equals Do value2 thing break
default: value2?
// Do default action
break;
} n
// Continue the program
do default action
Continue the
break
program
Remember the Chained If-Else . . .
if (grade == 'A')
System.out.println("You got an A.");
else if (grade == 'B')
System.out.println("You got a B.");
else if (grade == 'C')
System.out.println("You got a C.");
else
System.out.println("You got an F.");
• This is how it is accomplished with a switch:
switch (grade) {
case 'A':
System.out.println("You got an A.");
break;
case 'B':
System.out.println("You got a B.");
break;
case 'C':
System.out.println("You got a C.");
break;
default:
System.out.println("You got an F.");
}
• if-else chains can be sometimes be rewritten
as a “switch” statement.
• switches are usually simpler and faster
Loops
• A loop allows you to execute a statement or
block of statements repeatedly.
• Three types of loops in Java:
1. while loops
2. for loops
3. do-while loops (not discussed in this course)
The while Loop
while (expression){
statement
}
• This while loop executes as long as the given logical
expression between parentheses is true. When
expression is false, execution continues with the
statement following the loop block.
• The expression is tested at the beginning of the loop, so
if it is initially false, the loop will not be executed at all.
• For example:
int sum = 0;
int i = 1;
while (i <= 10){
sum += i;
i++;
}
• What is the value of sum?
1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 = 55
The for Loop
for (init_expr; loop_condition; increment_expr) {
statement;
}
The control of the for loop appear in parentheses and is made up of
three parts:
1. The first part, the init_expression,sets the initial
conditions for the loop and is executed before the loop starts.
2. Loop executes so long as the loop_condition is true and
exits otherwise.
3. The third part of the control information, the
increment_expr, is usually used to increment the loop
counter. This is executed at the end of each loop iteration.
• For example:
int sum = 0;
for (int i = 1; i <= 10; i++) {
sum += i;
}
• What is the value of sum?
1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 = 55
• Example 3:
for(int div = 0; div < 1000; div++){
if(div % 2 == 0) {
System.out.println("even: " + div);
} else {
System.out.println("odd: " + div);
}
}
• What will this for loop do?
prints out each integer from 0 to 999,
correctly labeling them even or odd
• If there is more than one variable to set up or
increment they are separated by a comma.
for(i=0, j=0; i*j < 100; i++, j+=2) {
System.out.println(i * j);
}
• You do not have to fill all three control expressions
but you must still have two semicolons.
int n = 0;
for(; n <= 100;) {
System.out.println(++n);
}
The for loop
Initialize count
The while loop
n n
Test condition Test condition
is true? is true?
y
y
Execute loop
statement(?) Execute loop
statement(s)
Increment
Next statement count
New statement
The continue Statement
• The continue statement causes the program
to jump to the next iteration of the loop.
/**
* prints out "5689"
*/
for(int m = 5; m < 10; m++) {
if(m == 7) {
continue;
}
System.out.print(m);
}
• Another continue example:
int sum = 0;
for(int i = 1; i <= 10; i++){
if(i % 3 == 0) {
continue;
}
sum += i;
}
• What is the value of sum?
1 + 2 + 4 + 5 + 7 + 8 + 10 = 37
The break Statement
• We have seen the use of the break
statement in the switch statement.
• You can also use the break statement to exit
the loop entirely.
// prints out numbers unless
// num is ever exactly 400
while (num > 6) {
if(num == 400) {
break;
}
System.out.println(num);
num -= 8;
}
Nested Loops
• You can nest loops of any kind one inside
another to any depth. What does this print?
for(int i = 10; i > 0; i--) {
if (i > 7) {
continue;
6
} 5
while (i > 3) { 5
if(i == 5) { 4
break; 3
}
3
System.out.println(--i);
}
1
System.out.println(i);
}
POP QUIZ
1. In the switch statement, which types can
expression evaluate to? char, byte, short, int
2. What must be used to separate each
section of a for statement. semicolons
3. Which statement causes a program to
skip to the next iteration of a loop. continue
4. Write a for loop that outputs 100-1 in
reverse sequence.
5. Write a for loop that outputs all numbers
that are divisible by 3 between 0-50.