Download as pdf or txt
Download as pdf or txt
You are on page 1of 28

Lecture 4

Control Structures
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
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 = 1; 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 1 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
int num=500;
while (num > 6) {
if(num == 400) {
break;
}
System.out.println(num);
num -= 10;
}
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) { 3
break; 3
}
2
System.out.println(--i);
}
1
System.out.println(i);
}
Exercise
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.

You might also like