chapter 1 nested control structures
DESCRIPTION
Chapter 1 Nested Control Structures Advanced control structures in Java. java, selection, repititionTRANSCRIPT
Khirulnizam Abd Rahman0129034614 (WhatsApp/SMS)
Fundamentals of (Java) Programming
About KhirulnizamLecturer of Computer Science, Faculty of Information Science and
Technology, Selangor International Islamic University College (KUIS) – since 2000.
Codes in blog.kerul.netProgramming 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-rasulSmartSolat – bit.ly/smartsolat
Apps in Windows StoreHijrah Rasul – bit.ly/hijrah-enPeribahasa Dictionary
11/28/14http://blog.kerul.net2
Course SynopsisThis 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 Program Design, 3e3
Assessment
Java Programming: From Problem Analysis to Program Design, 3e4
Main TextLiang 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 Program Design, 3e5
Control Structure I
Control StructuresA computer can process a program in three(3) ways :
Sequence (line by line)
Selection or choice (branch)
Repetition
Sequence StructureStart at the beginning and follows the statement in order.
start
statement1
statement2
Statement-n
End
…
Selection StructureStatement executions is depending on one or more condition
start
statement1
statement2
Statement-n
End
conditionstatement3 TF
Repetition StructureSame statement is repeated in a number of times depending
on one or more condition.
start
statement1
statement2
Statement-n
End
conditionT
F
Conditional ExpressionConsider 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
Logical ExpressionWrite 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 1004. height is between 1.5 and 2.0.
Logical ExpressionUse Logical & comparison operator to construct thelogical expression
1. yourAge > 502. myAge != 03. y > 20 && y <1004. height > 1.5 && height < 2.0.
Logical ExpressionEvaluate 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 <=56. y == 200 || y ==1007. x == 10 || x != 5
Logical ExpressionEvaluate 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 <=56. y == 200 || y ==1007. x == 10 || x != 5
Selection Structure
There are 2 types of Selection Structure
If statement
Switch statement
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
If Statement : One-Way IFThe Syntax
If (condition)statement;
if (condition) {
statement1;statement2;
}
Only one statement
More than one statement
If Statement : One-Way If
If (condition)statement1;
statement2;
T F
If (mark > 50) System.out.println(“GOOD!!”);System.out.println(“THANK YOU”);
F
Output :
THANK YOU
Mark = 34
If Statement : One-Way If
If (condition)statement1;
statement2;
T F
If (mark > 50) System.out.println(“GOOD!!”);System.out.println(“THANK YOU”);
Mark = 60T
Output :
GOOD!!THANK YOU
If Statement : One-Way If
If (mark > 50){ System.out.println(“GOOD!!”); System.out.println(“GRAGE = A!!”);}System.out.println(“THANK YOU”);
Mark = 45F
Output :
THANK YOU
If Statement : One-Way If
If (mark > 50){ System.out.println(“GOOD!!”); System.out.println(“GRAGE = A!!”);}System.out.println(“THANK YOU”);
Mark = 60T
Output :
GOOD!!GRADE = ATHANK YOU
If Statement : Two-Way IFThe Syntax
if (condition)statement1;
else
statement2;
statement3;
Only one statement for each
If Statement : Two-Way IFThe Syntax
if (score > 50)System.out.println(“GOOD!!”);
else System.out.println(“BAD!!”);System.out.println(“THANK YOU”);
Mark = 34F
Output :
BAD!!THANK YOU
If Statement : Two-Way IFThe Syntax
if (score > 50)System.out.println(“GOOD!!”);
else System.out.println(“BAD!!”);System.out.println(“THANK YOU”);
Mark = 60T
Output :
GOOD!!THANK YOU
If Statement : Two-Way IFThe Syntax
if (condition) {
statement1;statement2;
} else{Statement3; Statement4;
} Statement5;
More than one statement
If Statement : Two-Way IFThe Syntax
if (score > 50){ System.out.println(“GOOD!!”);
System.out.println(“GRADE = A!!”);}else
System.out.println(“BAD!!”);
System.out.println(“THANK YOU”);
Mark = 60T
Output :GOOD!!GRADE = ATHANK YOU
If Statement : Two-Way IFThe Syntax
if (score > 50){ System.out.println(“GOOD!!”);
System.out.println(“GRADE = A!!”);}
else
System.out.println(“BAD!!”);
System.out.println(“THANK YOU”);
Mark = 40F
Output :BAD!!THANK YOU
If Statement : Multiple-Way IFThe Syntaxif (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
If Statement : Multiple-Way IFThe Syntaxif (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
If Statement : Multiple-Way IF
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!!!”}System.out.println(“Grade = “ + grade);
Mark = 34?F
F
F
T
Output :Grade = F
If Statement : Multiple-Way IF
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!!!”}System.out.println(“Grade = “ + grade);
Mark = 65?F
T
Output :Grade = B
Selection Structure : Switchswitch(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
Selection Structure : Switchswitch(month) { //start switch
case 1:Name = “January”;break;
case 2:name = “February”;break;
case 3:name = “March”;break;
… default:
name = “ Not available”;} // end switchSystem,out.println(“Month = “ + name);
Month = 2F
T
C1 - COMPLEX FLOW CONTROL
FUNDAMENTALS OF PROGRAMMINGDTCP 2023
NESTED IF STATEMENT
SYNTAX
if (Boolean_Expression_1) if (Boolean_Expression_2)
Statement_1)else
Statement_2
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
Nested if statement
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 System.out.println("Good bye");
No output given
Good bye
The Nested-if StatementThe 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");
}
Control Flow of Nested-if Statement
40
messageBox.show("You did not pass");
messageBox.show("You did not pass");
false inner if
messageBox.show("You did pass");
messageBox.show("You did pass");
false
testScore >= 70 ?
testScore >= 70 ?
true
studentAge < 10 ?
studentAge < 10 ?
messageBox.show("You did a great job");
messageBox.show("You did a great job");
true
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.
Nested Statements
Syntaxif (Boolean_Expression_1) if (Boolean_Expression_2)
Statement_1) else
Statement_2)else if (Boolean_Expression_3)
Statement_3) else
Statement_4);
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.
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(""); }}
******
EXERCISEConstruct a simple program that apply nested if else statement
follow the rules given.
Example: If student score is 99 then display the grade which is A to student.
Score Grade
90 <= score A
80 <= score < 90 B
70 <= score < 80 C
60 <= score < 70 D
Score < 60 F
46
Nested if StatementsThe 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
Nested Control Structuresfor loops can be found within other for loops
47
Example 1
for (int i = 1; i <= 5; i++){ for (int j = 1; j <= i; j++) System.out.print(" *");
System.out.println();}
48
Output:
***************
Example 2What 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:***
Example 3What 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
Example 4What 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
Nested LoopsSuppose 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 92 4 6 8 10 12 14 16 183 6 9 12 15 18 21 24 274 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.
Nested Loops (cont.)The table shows the relationship between the row and
column variables needed to print the following triangular pattern:
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
# # # # ## # # ## # ## ##
• You could use the following nested for loop.
Row Column Bound(6 – Row)
Number ofSymbols
1 6-1 52 6-2 43 6-3 34 6-4 25 6-5 1
54
The Nested-for StatementNesting a for statement inside another for statement is commonly
used technique in programming.Let’s generate the following table using nested-for statement.
55
Generating the Tableint 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