ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
Chapter 1 nested control structures
1. Fundamentals of (Java)
Programming
Khirulnizam Abd Rahman
0129034614 (WhatsApp/SMS)
Khirulnizam@gmail.com
KERUL.net
2. About Khirulnizam
Lecturer of Computer Science, Faculty of Information
Science and Technology, Selangor International Islamic
University College (KUIS) – since 2000.
Codes in blog.kerul.net
Programming background: C, Java, PHP.
Apps in Google Play
M-Mathurat – 200K ( bit.ly/m-mathurat )
Peribahasa Dictionary – 20K ( bit.ly/pbahasa)
mDictionary – open-sourced ( bit.ly/m-dictionary )
Hijrah Rasul – bit.ly/hijrah-rasul
SmartSolat – bit.ly/smartsolat
Apps in Windows Store
Hijrah Rasul – bit.ly/hijrah-en
Peribahasa Dictionary
2 http://blog.kerul.net 28/11/2014
3. Course Synopsis
This course is the continuation of the previous course
(Algorithm and Problem Solving). It introduces
complex flow control, method, array, class design, file
and file I/O.
Objectives: At the end of this course, students
should be able to;
write and apply complex control structure.
create and invoke methods in programs.
declare, create and apply arrays and classes.
retrieve from and write data into another file.
Java Programming: From Problem Analysis to
3 Program Design, 3e
5. Main Text
Liang Y. Daniel. Introduction to Java
Programming, Eight Edition, 2011, Pearson
F. Joyce. Java Programming, 6th Edition, 2011,
Course Technology
Tool: JDK & Eclipse Java IDE
Java Programming: From Problem Analysis to
5 Program Design, 3e
7. Control Structures
A computer can process a program in three(3)
ways :
Sequence (line by line)
Selection or choice (branch)
Repetition
8. Sequence Structure
Start at the beginning and follows the statement
in order.
start
statement1
statement2
…
Statement-n
End
9. Selection Structure
Statement executions is depending on one or
more condition
start
statement1
statement3 Fcondition T
statement2
Statement-n
End
10. Repetition Structure
Same statement is repeated in a number of times
depending on one or more condition.
start
statement1
statement2
condition
Statement-n
End
T
F
11. Conditional Expression
Consider the following statement
If (score is greater than or equal to 90)
grade is A
If (temperature is greater than 50)
display “Its Hot”
Conditional
expression
Grade is A only if
score >=90
Display Its Hot
only if the
temperature > 50
12. Logical Expression
Write the logical expression for the following
1. yourAge is greater than 50.
2. The value of myAge is not 0.
3. y is between 20 and 100
4. height is between 1.5 and 2.0.
13. Logical Expression
Use Logical & comparison operator to construct
the
logical expression
1. yourAge > 50
2. myAge != 0
3. y > 20 && y <100
4. height > 1.5 && height < 2.0.
14. Logical Expression
Evaluate the following expression. Given x is 5
and y is 200.
1. x != 12
2. y < 100
3. x == 5
4. y == x*40
5. x >=5 && x <=5
6. y == 200 || y ==100
7. x == 10 || x != 5
15. Logical Expression
Evaluate the following expression. Given x is 5
and y is 200.
1. x != 12
2. y < 100
3. x == 5
4. y == x*40
5. x >=5 && x <=5
6. y == 200 || y ==100
7. x == 10 || x != 5
16. Selection Structure
There are 2 types of Selection
Structure
If statement
Switch statement
17. Selection Structure – If Statement
There are 3 types of if statement
One-way selection : if
Two-way selection : if - else
Multiple-way selection : if – else if
- else
18. If Statement : One-Way IF
The Syntax
If (condition)
statement;
if (condition)
{
statement1;
statement2;
}
Only one
statement
More than
one
statement
19. If Statement : One-Way If
If (condition)
statement1;
statement2;
T F
If (mark > 50)
F
System.out.println(“GOOD!!”);
System.out.println(“THANK YOU”);
Output :
THANK YOU
Mark = 34
20. If Statement : One-Way If
If (condition)
statement1;
statement2;
T F
If (mark > 50)
Mark = 60
T
System.out.println(“GOOD!!”);
System.out.println(“THANK YOU”);
Output :
GOOD!!
THANK YOU
21. If Statement : One-Way If
If (mark > 50){
Mark = 45
F
System.out.println(“GOOD!!”);
System.out.println(“GRAGE = A!!”);
}
System.out.println(“THANK YOU”);
Output :
THANK YOU
22. If Statement : One-Way If
If (mark > 50){
Mark = 60
T
System.out.println(“GOOD!!”);
System.out.println(“GRAGE = A!!”);
}
System.out.println(“THANK YOU”);
Output :
GOOD!!
GRADE = A
THANK YOU
23. If Statement : Two-Way IF
The Syntax
if (condition)
statement1;
else
statement2;
statement3;
Only one statement
for each
24. If Statement : Two-Way IF
The Syntax
if (score > 50)
F Mark = 34
System.out.println(“GOOD!!”);
else
System.out.println(“BAD!!”);
System.out.println(“THANK YOU”);
Output :
BAD!!
THANK YOU
25. If Statement : Two-Way IF
The Syntax
if (score > 50)
T Mark = 60
System.out.println(“GOOD!!”);
else
System.out.println(“BAD!!”);
System.out.println(“THANK YOU”);
Output :
GOOD!!
THANK YOU
26. If Statement : Two-Way IF
The Syntax
if (condition)
{
statement1;
statement2;
}
else
{
Statement3;
Statement4;
}
Statement5;
More than one
statement
27. If Statement : Two-Way IF
The Syntax
if (score > 50){
T Mark = 60
System.out.println(“GOOD!!”);
System.out.println(“GRADE = A!!”);}
else
System.out.println(“BAD!!”);
System.out.println(“THANK YOU”);
Output :
GOOD!!
GRADE = A
THANK YOU
28. If Statement : Two-Way IF
The Syntax
if (score > 50){
F Mark = 40
System.out.println(“GOOD!!”);
System.out.println(“GRADE = A!!”);}
else
System.out.println(“BAD!!”);
System.out.println(“THANK YOU”);
Output :
BAD!!
THANK YOU
29. If Statement : Multiple-Way IF
The Syntax
if (condition)
statement1;
else if (condition){
statement2;
statement3;}
else if (condition)
statement4;
else if (condition)
statement5;
else {
statement6;
statement7;}
Use braces if there
are more than one
statement in a group
30. If Statement : Multiple-Way IF
The Syntax
if (mark > 70)
grade = “A”;
else if (mark > 60 && mark <= 70){
grade = “B”;
mark = mark + 3;}
else if (mark > 50 && mark <=60)
grade = “C”;
else if (mark > 35 && mark <=50)
grade = “D”;
else {
grade = “F”
message = “FAIL!!!”}
Don’t use
60 < mark <=70 x
31. Output :
Grade = F
If Statement : Multiple-Way IF
if (mark > 70)
grade = “A”;
F Mark = 34?
F
else if (mark > 60 && mark <= 70){
grade = “B”;
mark = mark + 3;}
F
else if (mark > 50 && mark <=60)
grade = “C”;
else if (mark > 35 && mark <=50)
grade = “D”;
else {
grade = “F”
message = “FAIL!!!”}
T
System.out.println(“Grade = “ + grade);
32. If Statement : Multiple-Way IF
if (mark > 70)
grade = “A”;
F Mark = 65?
T
else if (mark > 60 && mark <= 70){
grade = “B”;
mark = mark + 3;}
else if (mark > 50 && mark <=60)
grade = “C”;
else if (mark > 35 && mark <=50)
grade = “D”;
else {
grade = “F”
message = “FAIL!!!”}
Output :
Grade = B
System.out.println(“Grade = “ + grade);
33. Selection Structure : Switch
switch(expression) { //start switch
case value1:
statement1;
break;
case value2:
statement2;
statement3;
break;
case value3:
statement4;
break;
…
default:
statement-n;
} // end switch
use colon
not semicolon
34. Selection Structure : Switch
switch(month) { //start switch
case 1:
Name = “January”;
break;
case 2:
name = “February”;
break;
case 3:
name = “March”;
break;
…
default:
name = “ Not available”;
} // end switch
System,out.println(“Month = “ + name);
Month = 2
F
T
35. C1 - COMPLEX FLOW
CONTROL
FUNDAMENTALS OF PROGRAMMING
DTCP 2023
36. NESTED IF STATEMENT
SYNTAX
if (Boolean_Expression_1)
if (Boolean_Expression_2)
Statement_1)
else
Statement_2
37. Nested Statements
Subtly different forms
First Form
if (a > b)
{
if (c > d)
e = f
}
else
g = h;
Second Form
if (a > b)
if (c > d)
e = f
else
g = h;
// oops
38. What is the output? Any difference???
if ( x < y)
if (x < z)
System.out.println("Hello");
else
System.out.println("Good bye");
if ( x < y){
if (x < z)
System.out.println("Hello");
}else
Good bye
System.out.println("Good bye");
Nested if statement
No output
given
39. The Nested-if Statement
The then and else block of an if statement can contain
any valid statements, including other if statements. An
if statement containing another if statement is called a
nested-if statement.
39
if (testScore >= 70) {
if (studentAge < 10) {
System.out.println("You did a great job");
} else {
System.out.println("You did pass"); //test score >= 70
} //and age >= 10
} else { //test score < 70
System.out.println("You did not pass");
}
40. Control Flow of Nested-if Statement
messageBox.show
("You did not
pass");
40
false
inner if
false
testScore >=
70 ?
messageBox.show
("You did pass");
true
studentAge <
10 ?
true
messageBox.show
("You did a great
job");
41. Nested if-else Statements
An if-else statement can contain any sort of
statement within it.
In particular, it can contain another if-else
statement.
An if-else may be nested within the "if" part.
An if-else may be nested within the "else" part.
An if-else may be nested within both parts.
42. Nested Statements
Syntax
if (Boolean_Expression_1)
if (Boolean_Expression_2)
Statement_1)
else
Statement_2)
else
if (Boolean_Expression_3)
Statement_3)
else
Statement_4);
43. Nested Statements
Each else is paired with the nearest unmatched
if.
If used properly, indentation communicates which
if goes with which else.
Braces can be used like parentheses to group
statements.
44. TRACE THE OUTPUT
public class test{
public static void main(String[] args){
int a=4;
for (int i=1; i<a;i++ ){
for (int j=1; j<=i;j++ ){
System.out.print("*");
}
System.out.println("");
}
}
*
**
***
45. EXERCISE
Construct a simple program that apply nested if else
statement follow the rules given.
Score Grade
90 <= score A
80 <= score < 90 B
70 <= score < 80 C
60 <= score < 70 D
Score < 60 F
Example:
If student score is 99 then display the grade which is
A to student.
46. 46
Nested if Statements
The statement executed as a result of an if
statement or else clause could be another if
statement
These are called nested if statements
See MinOfThree.java (page 227)
An else clause is matched to the last unmatched
if (no matter what the indentation implies)
Braces can be used to specify the if statement
to which an else clause belongs
48. Example 1
for (int i = 1; i <= 5; i++)
{
for (int j = 1; j <= i; j++)
System.out.print(" *");
System.out.println();
}
48
Output:
*
**
***
****
*****
49. Example 2
What will be the value of after each of the
following nested loops is executed?
for (int i = 1; i < 4; i++){
for (int j = 1; j < 4-i; j++){
System.out.print(" *");
} System.out.println();
}
49
Output:
**
*
50. Example 3
What will be the value of after each of the
following nested loops is executed?
int sum = 0;
for (int i = 0; i<=2; i++)
{ for (int j = 0; j<=2; j++)
{ sum = sum + i;
}
}System.out.println(sum);
50
Output:
9
51. Example 4
What does the following program segment print?
for (int f = 0; f < 3; ++f){
for (int g = 0; g < 2; ++g){
System.out.print(f);
System.out.print(g);
}
}
51
Output:
000110112021
52. Nested Loops
Suppose you wanted to print the following
table:
for (int row = 1; row <= 4; row++) { // For each of 4 rows
for (int col = 1; col <= 9; col++) // For each of 9 columns
System.out.print(col * row + "t"); // Print 36 numbers
System.out.println(); // Start a new row
} // for row
1 2 3 4 5 6 7 8 9
2 4 6 8 10 12 14 16 18
3 6 9 12 15 18 21 24 27
4 8 12 16 20 24 28 32 36
• You could use a nested for loop. The outer loop
prints the four rows and in each row, the inner loop
prints the 9 columns.
53. Nested Loops (cont.)
The table shows the relationship between the
row and column variables needed to print the
following triangular pattern:
# # # # #
# # # #
# # #
# #
#
• You could use the following nested for loop.
for (int row = 1; row <= 5; row++) { // For each row
for (int col = 1; col <= 6 - row; col++) // Print the row
System.out.print('#');
System.out.println(); // And a new row
} // for row
Row Column Bound
(6 – Row)
Number of
Symbols
1 6-1 5
2 6-2 4
3 6-3 3
4 6-4 2
5 6-5 1
54. 54
The Nested-for Statement
Nesting a for statement inside another for statement is
commonly used technique in programming.
Let’s generate the following table using nested-for
statement.
55. 55
Generating the Table
int price;
for (int width = 11; width <=20, width++){
for (int length = 5, length <=25, length+=5){
price = width * length * 19; //$19 per sq. ft.
System.out.print (“ “ + price);
}
//finished one row; move on to next row
System.out.println(“”);
INNER
}
OUTER