0% found this document useful (0 votes)
4 views

Lecture -4

java

Uploaded by

Derrese Solomon
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views

Lecture -4

java

Uploaded by

Derrese Solomon
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 28

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.

You might also like