comp 110: spring 20091 announcements lab 1 was due at noon lab 2 on friday (bring laptops)...
TRANSCRIPT
COMP 110: Spring 20091
Announcements
Lab 1 was due at noonLab 2 on Friday
(Bring Laptops)
Assignment 1 is onlineTA Office hours online30-min quiz at end of class
select all that applymultiple choice
COMP 110: Spring 20092
Questions?
Last time we coveredTypecastingStringsBinary/Unary operatorsI/OStyle
COMP 110: Spring 20093
Today in COMP 110
Branchingif – else control structurebooleansrelational operators
COMP 110: Spring 20094
Branching
Sometimes, it is necessary to make decisions in programs
ExampleThe remainder operator can be used to determine if a number n is even or odd
If n%2 equals 0, n is even
If n%2 equals 1, n is odd
COMP 110: Spring 20095
Branching
We know how to calculate n % 2
int result = n % 2;
But what next to do next?
COMP 110: Spring 20096
Branching
int result = n % 2;
Evaluate
result is 0?
Execute
Print “n is even”
Execute
Print “n is odd”
true false
COMP 110: Spring 20097
If-Else Statement
An if-else statement allows us to make decisions in a program
int result = n % 2;
if(result == 0)System.out.println(“That number is even!”);
elseSystem.out.println(“That number is odd!”);
COMP 110: Spring 20098
If-Else Example
int n = 2int result = n % 2;
if(result == 0)System.out.println(“That number is even!”);
elseSystem.out.println(“That number is odd!”);
System.out.println(“Finished!”);
result = 0
COMP 110: Spring 20099
If-Else Example
int n = 3int result = n % 2;
if(result == 0)System.out.println(“That number is even!”);
elseSystem.out.println(“That number is odd!”);
System.out.println(“Finished!”);
result = 1
COMP 110: Spring 200910
Boolean Expressions
(result == 0) is a boolean expression
Boolean expressions evaluate to either true or false
Examples10 > 5, (true)4 > 6, (false)Integers are whole numbers, (true)
COMP 110: Spring 200911
Java Comparison Operators
==
Equal to
!= Not equal to
> Greater than
>=
Greater than or equal to
< Less than
<=
Less than or equal to
COMP 110: Spring 200912
If-Else Statement Syntax
Syntaxif(Boolean_Expression)Statement_1
elseStatement_2
If Boolean_Expression is true, Statement_1 is executed; otherwise Statement_2 is executed
COMP 110: Spring 200913
Compound Statements
Multiple statements can be included in each branch
Called a compound statementEnclose between {…}
if(Boolean_Expression) {Statements_1
} else { Statements_2}
COMP 110: Spring 200914
If without Else
Syntax
if(Boolean_Expression)Statement_1
Example
if(accntBalance-withdrawal < 0) //overdraft feeaccntBalance = accntBalance – FEE;
COMP 110: Spring 200915
Common Comparison Mistakes
Don’t confuse the assignment operator (=) with the comparison operator (==)!
if(x == y) //valid
if(x = y) //syntax error
COMP 110: Spring 200916
Common Comparison Mistakes
Don’t use == to compare StringsUse string.equals(A_String) or string.equalsIgnoreCase(A_String)Example
String s1 = keyboard.next(); //read in a stringif(s1.equals(“Hello”))
System.out.println(“The String is Hello.”);else
System.out.println(“The String is not Hello.”);
COMP 110: Spring 200917
The && Operator (AND)
We can check for multiple conditions using the && (AND) operator
Meaning is similar to that of English “and”
if ((temperature > 50) && (temperature < 75)) {// walk to school if 50 < temperature < 75
}else {
//otherwise drive to school}
COMP 110: Spring 200918
The || Operator (OR)
We can also join boolean expression with || (OR)
Meaning is similar to that of English “or”
if (raining || runningLate) {//drive to school
}
COMP 110: Spring 200919
The ! Operator (NOT)
Boolean negation!false is True!true is false
Example
if (!cloudy) {// walk to school if it’s not cloudy
}
COMP 110: Spring 200920
Effect of Boolean Operators
A B A && B
A || B !A
true true true true false
true false false true false
false true false true true
false false false false true
COMP 110: Spring 200921
Boolean Expression Examples
Using x = 5, y = 10, z = 15
(x < 5 && y > x)• (false && true) -> false
(x <= 5 || y > x)• (true || true) -> true
(x > 3 || z != 15)• (true || false) -> true
(!(x > 3) && x + y == z)• (false && true) -> false
COMP 110: Spring 200922
Avoiding the Negation Op
!(A < B) -->
!(A <= B) -->
!(A > B) -->
!(A >= B) -->
!(A == B) -->
!(A != B) -->
(A >= B)
(A > B)
(A <= B)
(A < B)
(A != B)
(A == B)
It’s best to avoid use of the negation operator (!) when possible
COMP 110: Spring 200923
Nested If-Statements
It’s possible to have if statements inside other if statementsExample
We want to perform some checks on the user’s account balanceIf the balance is >= 0, we’ll add interest if the interest rate is >= 0, and print an error message if interest rate is < 0. If the balance is < 0, we’ll subtract a fee.
COMP 110: Spring 200924
Nested If Statements
Evaluate
balance >= 0
Evaluate
INTEREST_RATE >= 0
Execute
balance -= FEE
true false
Execute
balance = balance + balance*INTEREST_RATE
Execute
Print Error Message a
true false
COMP 110: Spring 200925
Nested If Statements
if(balance >= 0) {if(INTEREST_RATE >= 0) balance = balance +
INTEREST_RATE*balance;else
System.out.println(“Negative Interest!”);}else
balance = balance – FEE;
COMP 110: Spring 200926
Nested If Statements
What if we didn’t need to print the error message?
if(balance >= 0 && INTEREST_RATE >= 0) balance = balance +
INTEREST_RATE*balance;else
balance = balance – FEE;
//whats wrong here?
COMP 110: Spring 200927
Multi-Branch If Statements
What if we need to decide between many possibilities?
ExampleGiven a numeric score (0..100) determine whether the grade is an A,B,C,D,or F
COMP 110: Spring 200928
Multi-Branch If Statements
A if: score >= 90B if: 90 > score >= 80C if: 80 > score >= 70D if: 70 > score >= 60F in all other cases
COMP 110: Spring 200929
Multi-Branch If Statements
We could write this as follows
if(score >=90) grade = ‘A’;else if(score >=80) grade = ‘B’; else if(score >=70) grade = ‘C’; else if(score >=60) grade = ‘D’; else grade = ‘F’;
COMP 110: Spring 200930
Multi-Branch If Statements
The preferred way to write this is
if(score >=90)grade = ‘A’;
else if(score >=80)grade = ‘B’;
else if(score >=70)grade = ‘C’;
else if(score >=60)grade = ‘D’;
elsegrade = ‘F’;
COMP 110: Spring 200931
Multi-Branch If Statement
Syntax
if(Boolean_Expression_1)Action_1
else if(Boolean_Expression_2) Action_2
…else if(Boolean_Expression_n)
Action_nelseDefault_Action
COMP 110: Spring 200932
Programming Demo
Write a program to read in three distinct nonnegative integers from the keyboard and display them in increasing order
COMP 110: Spring 200933
Programming Demo
Designing the algorithmDetermine which of a,b,c is the smallest• If it’s not a, is it b? If it’s not a or b, must be c
Determine which of the two remaining integers is smaller than the other
COMP 110: Spring 200934
Programming Demo
Evaluate
a is smallest?
true false
a < b < c
a < c < b
Evaluate
b < ctrue false
b < a < c
b < c < a
Evaluate
a < ctrue false
c < a < b
c < b < a
Evaluate
a < btrue false
Evaluate
b is smallest?
true false
COMP 110: Spring 200935
Programming Demo
PseudocodeAsk user for three integers, a,b,cDetermine which of a,b,c is the smallestDetermine which of the remaining two is smallerPrint a,b,c in ascending order
COMP 110: Spring 200936
Friday
Recitation
BringLaptop (fully charged)Any questions about Program 1