comp 110: spring 20091 announcements lab 1 was due at noon lab 2 on friday (bring laptops)...

36
COMP 110: Spring 2009 1 Announcements Lab 1 was due at noon Lab 2 on Friday (Bring Laptops) Assignment 1 is online TA Office hours online 30-min quiz at end of class select all that apply multiple choice

Upload: susan-burke

Post on 17-Jan-2016

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: COMP 110: Spring 20091 Announcements Lab 1 was due at noon Lab 2 on Friday (Bring Laptops) Assignment 1 is online TA Office hours online 30-min quiz at

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

Page 2: COMP 110: Spring 20091 Announcements Lab 1 was due at noon Lab 2 on Friday (Bring Laptops) Assignment 1 is online TA Office hours online 30-min quiz at

COMP 110: Spring 20092

Questions?

Last time we coveredTypecastingStringsBinary/Unary operatorsI/OStyle

Page 3: COMP 110: Spring 20091 Announcements Lab 1 was due at noon Lab 2 on Friday (Bring Laptops) Assignment 1 is online TA Office hours online 30-min quiz at

COMP 110: Spring 20093

Today in COMP 110

Branchingif – else control structurebooleansrelational operators

Page 4: COMP 110: Spring 20091 Announcements Lab 1 was due at noon Lab 2 on Friday (Bring Laptops) Assignment 1 is online TA Office hours online 30-min quiz at

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

Page 5: COMP 110: Spring 20091 Announcements Lab 1 was due at noon Lab 2 on Friday (Bring Laptops) Assignment 1 is online TA Office hours online 30-min quiz at

COMP 110: Spring 20095

Branching

We know how to calculate n % 2

int result = n % 2;

But what next to do next?

Page 6: COMP 110: Spring 20091 Announcements Lab 1 was due at noon Lab 2 on Friday (Bring Laptops) Assignment 1 is online TA Office hours online 30-min quiz at

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

Page 7: COMP 110: Spring 20091 Announcements Lab 1 was due at noon Lab 2 on Friday (Bring Laptops) Assignment 1 is online TA Office hours online 30-min quiz at

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!”);

Page 8: COMP 110: Spring 20091 Announcements Lab 1 was due at noon Lab 2 on Friday (Bring Laptops) Assignment 1 is online TA Office hours online 30-min quiz at

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

Page 9: COMP 110: Spring 20091 Announcements Lab 1 was due at noon Lab 2 on Friday (Bring Laptops) Assignment 1 is online TA Office hours online 30-min quiz at

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

Page 10: COMP 110: Spring 20091 Announcements Lab 1 was due at noon Lab 2 on Friday (Bring Laptops) Assignment 1 is online TA Office hours online 30-min quiz at

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)

Page 11: COMP 110: Spring 20091 Announcements Lab 1 was due at noon Lab 2 on Friday (Bring Laptops) Assignment 1 is online TA Office hours online 30-min quiz at

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

Page 12: COMP 110: Spring 20091 Announcements Lab 1 was due at noon Lab 2 on Friday (Bring Laptops) Assignment 1 is online TA Office hours online 30-min quiz at

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

Page 13: COMP 110: Spring 20091 Announcements Lab 1 was due at noon Lab 2 on Friday (Bring Laptops) Assignment 1 is online TA Office hours online 30-min quiz at

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}

Page 14: COMP 110: Spring 20091 Announcements Lab 1 was due at noon Lab 2 on Friday (Bring Laptops) Assignment 1 is online TA Office hours online 30-min quiz at

COMP 110: Spring 200914

If without Else

Syntax

if(Boolean_Expression)Statement_1

Example

if(accntBalance-withdrawal < 0) //overdraft feeaccntBalance = accntBalance – FEE;

Page 15: COMP 110: Spring 20091 Announcements Lab 1 was due at noon Lab 2 on Friday (Bring Laptops) Assignment 1 is online TA Office hours online 30-min quiz at

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

Page 16: COMP 110: Spring 20091 Announcements Lab 1 was due at noon Lab 2 on Friday (Bring Laptops) Assignment 1 is online TA Office hours online 30-min quiz at

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.”);

Page 17: COMP 110: Spring 20091 Announcements Lab 1 was due at noon Lab 2 on Friday (Bring Laptops) Assignment 1 is online TA Office hours online 30-min quiz at

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}

Page 18: COMP 110: Spring 20091 Announcements Lab 1 was due at noon Lab 2 on Friday (Bring Laptops) Assignment 1 is online TA Office hours online 30-min quiz at

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

}

Page 19: COMP 110: Spring 20091 Announcements Lab 1 was due at noon Lab 2 on Friday (Bring Laptops) Assignment 1 is online TA Office hours online 30-min quiz at

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

}

Page 20: COMP 110: Spring 20091 Announcements Lab 1 was due at noon Lab 2 on Friday (Bring Laptops) Assignment 1 is online TA Office hours online 30-min quiz at

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

Page 21: COMP 110: Spring 20091 Announcements Lab 1 was due at noon Lab 2 on Friday (Bring Laptops) Assignment 1 is online TA Office hours online 30-min quiz at

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

Page 22: COMP 110: Spring 20091 Announcements Lab 1 was due at noon Lab 2 on Friday (Bring Laptops) Assignment 1 is online TA Office hours online 30-min quiz at

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

Page 23: COMP 110: Spring 20091 Announcements Lab 1 was due at noon Lab 2 on Friday (Bring Laptops) Assignment 1 is online TA Office hours online 30-min quiz at

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.

Page 24: COMP 110: Spring 20091 Announcements Lab 1 was due at noon Lab 2 on Friday (Bring Laptops) Assignment 1 is online TA Office hours online 30-min quiz at

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

Page 25: COMP 110: Spring 20091 Announcements Lab 1 was due at noon Lab 2 on Friday (Bring Laptops) Assignment 1 is online TA Office hours online 30-min quiz at

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;

Page 26: COMP 110: Spring 20091 Announcements Lab 1 was due at noon Lab 2 on Friday (Bring Laptops) Assignment 1 is online TA Office hours online 30-min quiz at

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?

Page 27: COMP 110: Spring 20091 Announcements Lab 1 was due at noon Lab 2 on Friday (Bring Laptops) Assignment 1 is online TA Office hours online 30-min quiz at

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

Page 28: COMP 110: Spring 20091 Announcements Lab 1 was due at noon Lab 2 on Friday (Bring Laptops) Assignment 1 is online TA Office hours online 30-min quiz at

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

Page 29: COMP 110: Spring 20091 Announcements Lab 1 was due at noon Lab 2 on Friday (Bring Laptops) Assignment 1 is online TA Office hours online 30-min quiz at

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’;

Page 30: COMP 110: Spring 20091 Announcements Lab 1 was due at noon Lab 2 on Friday (Bring Laptops) Assignment 1 is online TA Office hours online 30-min quiz at

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’;

Page 31: COMP 110: Spring 20091 Announcements Lab 1 was due at noon Lab 2 on Friday (Bring Laptops) Assignment 1 is online TA Office hours online 30-min quiz at

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

Page 32: COMP 110: Spring 20091 Announcements Lab 1 was due at noon Lab 2 on Friday (Bring Laptops) Assignment 1 is online TA Office hours online 30-min quiz at

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

Page 33: COMP 110: Spring 20091 Announcements Lab 1 was due at noon Lab 2 on Friday (Bring Laptops) Assignment 1 is online TA Office hours online 30-min quiz at

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

Page 34: COMP 110: Spring 20091 Announcements Lab 1 was due at noon Lab 2 on Friday (Bring Laptops) Assignment 1 is online TA Office hours online 30-min quiz at

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

Page 35: COMP 110: Spring 20091 Announcements Lab 1 was due at noon Lab 2 on Friday (Bring Laptops) Assignment 1 is online TA Office hours online 30-min quiz at

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

Page 36: COMP 110: Spring 20091 Announcements Lab 1 was due at noon Lab 2 on Friday (Bring Laptops) Assignment 1 is online TA Office hours online 30-min quiz at

COMP 110: Spring 200936

Friday

Recitation

BringLaptop (fully charged)Any questions about Program 1