chapter 4 decision making lecture slides to accompany an introduction to computer science using java...
TRANSCRIPT
![Page 1: Chapter 4 Decision Making Lecture Slides to Accompany An Introduction to Computer Science Using Java (2nd Edition) by S.N. Kamin, D. Mickunas, E. Reingold](https://reader033.vdocuments.us/reader033/viewer/2022061306/55147459550346494e8b620e/html5/thumbnails/1.jpg)
Chapter 4Decision Making
Lecture Slides to Accompany
An Introduction to Computer Science Using Java (2nd Edition)
by
S.N. Kamin, D. Mickunas, E. Reingold
![Page 2: Chapter 4 Decision Making Lecture Slides to Accompany An Introduction to Computer Science Using Java (2nd Edition) by S.N. Kamin, D. Mickunas, E. Reingold](https://reader033.vdocuments.us/reader033/viewer/2022061306/55147459550346494e8b620e/html5/thumbnails/2.jpg)
Chapter Preview
In this chapter we will:• discuss the use of decision making in
computer programming• describe the use of the Java if and switch
statements• describe the use of Boolean expressions in
Java if statements• discuss the use of integer selector variables
in Java switch statements
![Page 3: Chapter 4 Decision Making Lecture Slides to Accompany An Introduction to Computer Science Using Java (2nd Edition) by S.N. Kamin, D. Mickunas, E. Reingold](https://reader033.vdocuments.us/reader033/viewer/2022061306/55147459550346494e8b620e/html5/thumbnails/3.jpg)
if Statement
• Ensures that a statement is executed only when a condition is true
• Conditions typically involve comparison of variables or quantities for equality or inequality
• Example: if (age >= 18)
out.println(“You are eligible to vote.”);
![Page 4: Chapter 4 Decision Making Lecture Slides to Accompany An Introduction to Computer Science Using Java (2nd Edition) by S.N. Kamin, D. Mickunas, E. Reingold](https://reader033.vdocuments.us/reader033/viewer/2022061306/55147459550346494e8b620e/html5/thumbnails/4.jpg)
![Page 5: Chapter 4 Decision Making Lecture Slides to Accompany An Introduction to Computer Science Using Java (2nd Edition) by S.N. Kamin, D. Mickunas, E. Reingold](https://reader033.vdocuments.us/reader033/viewer/2022061306/55147459550346494e8b620e/html5/thumbnails/5.jpg)
Relational Operators
< < less than
> > greater than
<= less than or equal to
>= greater than or equal to
= == equal to
!= not equal to
![Page 6: Chapter 4 Decision Making Lecture Slides to Accompany An Introduction to Computer Science Using Java (2nd Edition) by S.N. Kamin, D. Mickunas, E. Reingold](https://reader033.vdocuments.us/reader033/viewer/2022061306/55147459550346494e8b620e/html5/thumbnails/6.jpg)
if Statement with Optional else
• An if statement may have an optional else clause that will only be executed when the condition is false
• Example:
if (wages <= 57600)
tax = 0.124 * wages;
else
tax = 0.124 * 57600;
![Page 7: Chapter 4 Decision Making Lecture Slides to Accompany An Introduction to Computer Science Using Java (2nd Edition) by S.N. Kamin, D. Mickunas, E. Reingold](https://reader033.vdocuments.us/reader033/viewer/2022061306/55147459550346494e8b620e/html5/thumbnails/7.jpg)
![Page 8: Chapter 4 Decision Making Lecture Slides to Accompany An Introduction to Computer Science Using Java (2nd Edition) by S.N. Kamin, D. Mickunas, E. Reingold](https://reader033.vdocuments.us/reader033/viewer/2022061306/55147459550346494e8b620e/html5/thumbnails/8.jpg)
Compound Alternatives
• To execute more than one statement conditionally, you may use { } to define a compound statement for either (or both) conditional alternatives
• Example:
if (firstNumber <= secondNumber) {
quotient = secondNumber / firstNumber;
remainder = secondNumber % firstNumber;
}
else {
quotient = firstNumber / secondNumber;
remainder = firstNumber % secondNumber;
}
![Page 9: Chapter 4 Decision Making Lecture Slides to Accompany An Introduction to Computer Science Using Java (2nd Edition) by S.N. Kamin, D. Mickunas, E. Reingold](https://reader033.vdocuments.us/reader033/viewer/2022061306/55147459550346494e8b620e/html5/thumbnails/9.jpg)
Cascading if-else Statements
• Example:
if (condition-1)
statement-1;
else
if (condition-2)
statement-2;
else
statement-3;
• Another format:
if (condition-1)
statement-1;
else if (condition-2)
statement-2;
else
statement-3;
![Page 10: Chapter 4 Decision Making Lecture Slides to Accompany An Introduction to Computer Science Using Java (2nd Edition) by S.N. Kamin, D. Mickunas, E. Reingold](https://reader033.vdocuments.us/reader033/viewer/2022061306/55147459550346494e8b620e/html5/thumbnails/10.jpg)
![Page 11: Chapter 4 Decision Making Lecture Slides to Accompany An Introduction to Computer Science Using Java (2nd Edition) by S.N. Kamin, D. Mickunas, E. Reingold](https://reader033.vdocuments.us/reader033/viewer/2022061306/55147459550346494e8b620e/html5/thumbnails/11.jpg)
Dangling else
• Code written:
if (condition-1)
if (condition-2)
statement-1;
else
statement-2;
• Interpreted as:
if (condition-1)
if (condition-2)
statement-1;
else
statement-2;
![Page 12: Chapter 4 Decision Making Lecture Slides to Accompany An Introduction to Computer Science Using Java (2nd Edition) by S.N. Kamin, D. Mickunas, E. Reingold](https://reader033.vdocuments.us/reader033/viewer/2022061306/55147459550346494e8b620e/html5/thumbnails/12.jpg)
![Page 13: Chapter 4 Decision Making Lecture Slides to Accompany An Introduction to Computer Science Using Java (2nd Edition) by S.N. Kamin, D. Mickunas, E. Reingold](https://reader033.vdocuments.us/reader033/viewer/2022061306/55147459550346494e8b620e/html5/thumbnails/13.jpg)
![Page 14: Chapter 4 Decision Making Lecture Slides to Accompany An Introduction to Computer Science Using Java (2nd Edition) by S.N. Kamin, D. Mickunas, E. Reingold](https://reader033.vdocuments.us/reader033/viewer/2022061306/55147459550346494e8b620e/html5/thumbnails/14.jpg)
Correcting the Problem
• Code written:
if (condition-1) {
if (condition-2)
statement-1;
}
else
statement-2;
• Interpreted as:
if (not condition-1)
statement-2;
else if (condition-2)
statement-1;
![Page 15: Chapter 4 Decision Making Lecture Slides to Accompany An Introduction to Computer Science Using Java (2nd Edition) by S.N. Kamin, D. Mickunas, E. Reingold](https://reader033.vdocuments.us/reader033/viewer/2022061306/55147459550346494e8b620e/html5/thumbnails/15.jpg)
Boolean Operators• Logical “and” (conjunction)
– true only when both expressions are true(MINIMUM_WAGE <= wages) && (wages <= MAXIMUM_WAGE)
• Logical inclusive “or” (disjunction)– true when either or both expressions are true(MINIMUM_WAGE < wages) || (MINIMUM_WAGE == wages)
• Logical exclusive “or”– true when exactly one of the expressions is true(MINIMUM_WAGE < wages) ^ (MINIMUM_WAGE == wages)
• Logical “not” (negation)(MINIMUM_WAGE != wages)
![Page 16: Chapter 4 Decision Making Lecture Slides to Accompany An Introduction to Computer Science Using Java (2nd Edition) by S.N. Kamin, D. Mickunas, E. Reingold](https://reader033.vdocuments.us/reader033/viewer/2022061306/55147459550346494e8b620e/html5/thumbnails/16.jpg)
Boolean Operator Truth Table
A B A && B A || B A^B !A
True True True True False False
True False False True True False
False True False True True True
False False False False False True
![Page 17: Chapter 4 Decision Making Lecture Slides to Accompany An Introduction to Computer Science Using Java (2nd Edition) by S.N. Kamin, D. Mickunas, E. Reingold](https://reader033.vdocuments.us/reader033/viewer/2022061306/55147459550346494e8b620e/html5/thumbnails/17.jpg)
Operator Precedence Rules
1. ! - (unary)
2. * / %
3. + -
4. < <= > >=
5. == !=
6. ^
7. &&
8. ||
![Page 18: Chapter 4 Decision Making Lecture Slides to Accompany An Introduction to Computer Science Using Java (2nd Edition) by S.N. Kamin, D. Mickunas, E. Reingold](https://reader033.vdocuments.us/reader033/viewer/2022061306/55147459550346494e8b620e/html5/thumbnails/18.jpg)
Complicated Boolean Expressions
boolean isLeapYear = ((year % 4) == 0)
&& ((year % 100) != 0)
|| ((year % 400) == 0);
// Assume all months have 31 days
dayNumber = (month - 1) * 31 + day;
// Correct for months beyond February
if (month > 2) {
dayNumber = dayNumber - ((4 * month +23) / 10);
if (isLeapYear)
// Correct for leap year
dayNumber = dayNumber + 1;
}
![Page 19: Chapter 4 Decision Making Lecture Slides to Accompany An Introduction to Computer Science Using Java (2nd Edition) by S.N. Kamin, D. Mickunas, E. Reingold](https://reader033.vdocuments.us/reader033/viewer/2022061306/55147459550346494e8b620e/html5/thumbnails/19.jpg)
![Page 20: Chapter 4 Decision Making Lecture Slides to Accompany An Introduction to Computer Science Using Java (2nd Edition) by S.N. Kamin, D. Mickunas, E. Reingold](https://reader033.vdocuments.us/reader033/viewer/2022061306/55147459550346494e8b620e/html5/thumbnails/20.jpg)
![Page 21: Chapter 4 Decision Making Lecture Slides to Accompany An Introduction to Computer Science Using Java (2nd Edition) by S.N. Kamin, D. Mickunas, E. Reingold](https://reader033.vdocuments.us/reader033/viewer/2022061306/55147459550346494e8b620e/html5/thumbnails/21.jpg)
Comparing Strings
• Comparison is done by comparing strings character-by-character left to right, the first character that differs dictates which string is smaller lexicographically
• What if one string is a prefix of the other?– The prefix is smaller than the longer string
• How do upper- and lower-case characters compare?– If a case-sensitive comparison is used lower-case
is always less than upper case• How do special characters (e.g. %) compare?
– Decided by the character ASCII representation
![Page 22: Chapter 4 Decision Making Lecture Slides to Accompany An Introduction to Computer Science Using Java (2nd Edition) by S.N. Kamin, D. Mickunas, E. Reingold](https://reader033.vdocuments.us/reader033/viewer/2022061306/55147459550346494e8b620e/html5/thumbnails/22.jpg)
Java String Class Comparison Methods
Example Explanation
int compareTo(String a) Compare two stringslexigraphically, returns<0, ==0, >0 values
int compareToIgnoreCase(String a) Compare two stringslexigraphically, ignoring caseconsiderations
boolean equals(String a) Returns true is the stringsare equal and falseotherwise
Boolan equalsIgnoreCase(String a) Returns true is the stringsare equal, ignoring case, andfalse otherwise
![Page 23: Chapter 4 Decision Making Lecture Slides to Accompany An Introduction to Computer Science Using Java (2nd Edition) by S.N. Kamin, D. Mickunas, E. Reingold](https://reader033.vdocuments.us/reader033/viewer/2022061306/55147459550346494e8b620e/html5/thumbnails/23.jpg)
switch Statement• Used to accomplish multi-way branching based on
the value of an integer selector variable• Example:
switch (numberOfPassengers) { case 0: out.println(“The Harley”);
break;
case 1: out.println(“The Dune Buggy”);
break;
default: out.println(“The Humvee”);
}
![Page 24: Chapter 4 Decision Making Lecture Slides to Accompany An Introduction to Computer Science Using Java (2nd Edition) by S.N. Kamin, D. Mickunas, E. Reingold](https://reader033.vdocuments.us/reader033/viewer/2022061306/55147459550346494e8b620e/html5/thumbnails/24.jpg)
![Page 25: Chapter 4 Decision Making Lecture Slides to Accompany An Introduction to Computer Science Using Java (2nd Edition) by S.N. Kamin, D. Mickunas, E. Reingold](https://reader033.vdocuments.us/reader033/viewer/2022061306/55147459550346494e8b620e/html5/thumbnails/25.jpg)
Why is break used in switch statements?
• Consider the code fragment below
int i = 1; switch (i) {
case 0: out.println(“0”);
case 1: out.println(“1”);
case 2: out.println(“2”);
case 3: out.println(“3”);
}
out.println( );
• Without breaks the output is: 123
![Page 26: Chapter 4 Decision Making Lecture Slides to Accompany An Introduction to Computer Science Using Java (2nd Edition) by S.N. Kamin, D. Mickunas, E. Reingold](https://reader033.vdocuments.us/reader033/viewer/2022061306/55147459550346494e8b620e/html5/thumbnails/26.jpg)
Symbolic Constants in switch Statementsfinal int SUNDAY = 1, MONDAY = 2, TUESDAY = 3, WEDNESDAY = 4, THURSDAY = 5, FRIDAY = 6, SATURDAY = 7;ind d;...switch (d) { case SUNDAY: out.print(“Sunday”); break; case MONDAY: out.print(“Monday”); break; case TUESDAY: out.print(“Tuesday”); break; case WEDNESDAY: out.print(“Wednesday”); break; case THURSDAY: out.print(“Thursday”); break; case FRIDAY: out.print(“Friday”); break; case SUNDAY: out.print(“Sunday”); break;}
![Page 27: Chapter 4 Decision Making Lecture Slides to Accompany An Introduction to Computer Science Using Java (2nd Edition) by S.N. Kamin, D. Mickunas, E. Reingold](https://reader033.vdocuments.us/reader033/viewer/2022061306/55147459550346494e8b620e/html5/thumbnails/27.jpg)
Multiple case Labels in switch Statements
switch (d) { case MONDAY: case WEDNESDAY: case FRIDAY: out.println(“C.S. meets at 9:00 today”); out.println(“Math meets at 10:00 today”); break; case TUESDAY: case THURSDAY: out.println(“English meets at 9:00 today”); out.println(“Chemistry meets at 10:00 today”); break; case SUNDAY: case Saturday out.println(“Enjoy the weekend”);}
![Page 28: Chapter 4 Decision Making Lecture Slides to Accompany An Introduction to Computer Science Using Java (2nd Edition) by S.N. Kamin, D. Mickunas, E. Reingold](https://reader033.vdocuments.us/reader033/viewer/2022061306/55147459550346494e8b620e/html5/thumbnails/28.jpg)
Comparing switch and if statements
• switch statement
switch (expression) {
case value-1: statement-1; break;
case value-2: statement-2; break;
…
case value-i: statement-i; break;
default: statement-(i+1);
}
• if equivalent
switchValue = expression;
if (switchValue == value-1)
statement-1;
else if (switchValue == value-2)
statement-2;
…
else if (switchValue == value-i)
statement-i;
else
statement-(i+1);
![Page 29: Chapter 4 Decision Making Lecture Slides to Accompany An Introduction to Computer Science Using Java (2nd Edition) by S.N. Kamin, D. Mickunas, E. Reingold](https://reader033.vdocuments.us/reader033/viewer/2022061306/55147459550346494e8b620e/html5/thumbnails/29.jpg)
Building Classes with Multiple Methods
public class Classname {
// Author, date, explanation
declarations of public variables
public void methodName ( parameters ) {
declarations of “local” variables
executable statements with relevant comments
}
public void methodName ( parameters ) {
declarations of “local” variables
executable statements with relevant comments
}
…
}