2. Chapter Goals
Be able to use the selection control
structure
Be able to solve problems involving
repetition.
Understand the difference among
various selection & loop structures.
Know the principles used to design
effective selection & loops (next
topic).
Improve algorithm design skills.
3. 3 Types Flow of Control
Sequential (we had learn in previous topic)
The statements in a program are
executed in sequential order
Selection
allow the program to select one of
multiple paths of execution.
The path is selected based on some
conditional criteria (boolean
expression)
Repetition (we will learn in next topic)
4. Flow of Control: Sequential
Structures
statement1
statement2
statement3
5. If the boolean expression evaluates to
true, the statement will be executed.
Otherwise, it will be skipped.
Flow of Control: Selection
Structures
6. There are 3 types of Java selection
structures:
if statement
if-else statement
switch statement
Flow of Control: Selection
Structures
7. The if Statement
The if statement has the following
syntax:
7
if ( condition )
statement;
if is a Java
reserved word
The condition must be a
boolean expression. It must
evaluate to either true or
false.
If the condition is true, the statement is executed.
If it is false, the statement is skipped.
8. Logic of an if statement
condition
evaluated
statement
true
false
10. Boolean Expressions
A condition often uses one of Java's
equality operators or relational
operators, which all return boolean
results:
== equal to
!= not equal to
< less than
> greater than
<= less than or equal to
>= greater than or equal to
10
11. The if Statement
if (total > MAX)
charge = total * MAX_RATE;
System.out.println ("The charge is " + charge);
First the condition is evaluated -- the value of
total is either greater than the value of MAX
If the condition is true, the assignment
statement is executed -- if it isn’t, it is skipped.
Either way, the call to println is executed
next
12. Java code example
class Count
{
public static void main (String args[])
{
double y=15.0;
double x=25.0;
if (y!=x)
System.out.println("Result : y not equal
x");
}
}
14. Block Statements
Several statements can be grouped
together into a block statement
delimited by braces
14
if (total > MAX)
{
System.out.println ("Error!!");
errorCount++;
}
15. Block Statement
if (amount <= balance)
{
balance = balance - amount;
System.out.println(“Acct new balance = “ +
balance);
}
COMPARE WITH
if (amount <= balance)
balance = balance - amount;
System.out.println(“Acct new balance = “ + balance);
16. Logical Operators
Expressions that use logical
operators can form complex
conditions
16
if ((income > MIN_LEVEL ) && (age <50))
System.out.println (“Can Apply Loan");
All logical operators have lower
precedence than the relational operators
Logical NOT has higher precedence than
logical AND and logical OR
19. Logical Operators
if ((amount <= 1000.0) && (amount <= balance))
{
balance = balance - amount;
System.out.println(“Acct new balance = “ +
balance);
}
EXAMPLE:
New withdrawal condition:
Withdrawal amount of more than RM1000.00 is not allowed.
20. The if-else Statement (2 way selection)
An else clause can be added to an if
statement to make an if-else
statement
20
if ( condition )
statement1;
else
statement2;
If the condition is true, statement1 is
executed; if the condition is false, statement2
is executed
One or the other will be executed, but not both
21. Logic of an if-else statement
condition
evaluated
statement1
true false
statement2
23. if/else Statement
if (amount <= balance)
balance = balance - amount;
else
balance = balance - OVERDRAFT_PENALTY;
Purpose:
To execute a statement when a condition is true
or false
25. Combine with Boolean operators
if ((age >= 25) && (age <= 50))
{
System.out.println(“You are qualified to apply”);
}
else
{
System.out.println(“You are NOT qualified to apply”);
}
EXAMPLE:
Loan Processing. Can apply if age is between 25 to 50.
26. Multiple Selection (nested if)
Syntax:
if (expression1)
statement1
else
if (expression2)
statement2
else
statement3
27. Java code (multiple selection)
if (a>=1)
{
System.out.println ("The number you enter is :" + a);
System.out.println ("You enter the positive number");
}
else if (a<0)
{
System.out.println ("The number you enter is :" + a);
System.out.println ("You enter the negative number");
}
else
{
System.out.println ("The number you enter is :" + a);
System.out.println ("You enter the zero number");
}
28. Output
Enter the number : 15
The number you enter is :15
You enter the positive number
Enter the number : -15
The number you enter is :-15
You enter the negative number
Enter the number : 0
The number you enter is :0
You enter the zero number
29. Multiple Selections
Example
The grading scheme for a course is
given as below:
Mark Grade
90 - 100 A
80 – 89 B
70 – 79 C
60 – 69 D
0 - 59 F
30. Multiple Selections
if (mark >= 90)
grade = ‘A’;
else if (mark >= 80)
grade = ‘B’;
else if (mark >= 70)
grade = ‘C’;
else if (mark >= 60)
grade = ‘D’;
else
grade = ‘F’;
31. Equivalent code with series of if
statements
if ((mark >= 90) && (mark <=100))
grade = ‘A’;
if ((mark >= 80) && (mark >= 89))
grade = ‘B’;
if ((mark >= 70) && (mark >= 79))
grade = ‘C’;
if ((mark >= 60) && (mark >= 69))
grade = ‘D’;
if ((mark >= 0) && (mark >= 59))
grade = ‘F’;
32. switch Structures (multiple
selection)
switch (expression)
{
case value1: statements1
break;
case value2: statements2
break;
...
case valuen: statementsn
break;
default: statements
}
Expression is also
known as selector.
Value can only be
integral.
If expression
matches value2,
control jumps
to here
34. The switch Statement
Often a break statement is used as
the last statement in each case's
statement list
A break statement causes control to
transfer to the end of the switch
statement
If a break statement is not used, the
flow of control will continue into the
next case
35. Control flow of switch statement with and
without the break statements
36. Switch/Break Examples
int m = 2;
switch (m)
{
case 1 :
System.out.println(“m=1”);
break;
case 2 :
System.out.println(“m=2”);
break;
case 3 :
System.out.println(“m=3”);
break;
default:
System.out.println(“default”);}
int m = 2;
switch (m)
{
case 1 :
System.out.println(“m=1”);
break;
case 2 :
System.out.println(“m=2”);
break;
case 3 :
System.out.println(“m=3”);
break;
default:
System.out.println(“default”);}
Output: m=2
char ch = ‘b’;
switch (ch)
{
case ‘a’ :
System.out.println(“ch=a”);
case ‘b’ :
System.out.println(“ch=b”);
case ‘c’ :
System.out.println(“ch=c”);
default:
System.out.println(“default”);
}
char ch = ‘b’;
switch (ch)
{
case ‘a’ :
System.out.println(“ch=a”);
case ‘b’ :
System.out.println(“ch=b”);
case ‘c’ :
System.out.println(“ch=c”);
default:
System.out.println(“default”);
}
Output: ch=b
ch=c
default
Hinweis der Redaktion
Else is associated with the most recent incomplete if.
Multiple if statements can be used in place of if…else statements.
May take longer to evaluate.
Utk aturcara lengkap, sila rujuk h/out (java code no 4)