9
10/26/2012 1 Java Decision Making and booleans (Java: An Eventful Approach, Ch 4), Slides Credit: Bruce, Danyluk and Murtagh CS 120 Lecture 14 26 October 2012 Conditional Statements Consider: if the mouse location is contained in the rectangle, display message “success” Some programming constructs can choose between blocks of code to execute

CS 120 Lecture 14 Java Decision Making and booleans

Embed Size (px)

Citation preview

Page 1: CS 120 Lecture 14 Java Decision Making and booleans

10/26/2012

1

Java Decision Making

and booleans (Java: An Eventful Approach, Ch 4),

Slides Credit: Bruce, Danyluk and Murtagh

CS 120 Lecture 14

26 October 2012

Conditional Statements

• Consider:

if the mouse location is contained

in the rectangle, display message “success”

• Some programming constructs can

choose between blocks of code to execute

Page 2: CS 120 Lecture 14 Java Decision Making and booleans

10/26/2012

2

A Vote Counting Example

Complete source code

Code to Update Votes:

// Update votes and display vote counts

public void onMouseClick( Location point ) {

if ( point.getX() < MID_X ) {

countA++;

infoA.setText( "So far there are " + countA +

" vote(s) for A." );

} else {

countB++;

infoB.setText( "So far there are " + countB +

" vote(s) for B." );

}

}

Page 3: CS 120 Lecture 14 Java Decision Making and booleans

10/26/2012

3

Syntax of the if Statement

• The condition is evaluated. If true, the bracketed code following if is executed; otherwise, the bracketed code after else is executed

if (condition) {

//do something

} else {

//do something else

}

• The else part can be omitted

if (condition) {

//do something here

}

if if-else

Page 4: CS 120 Lecture 14 Java Decision Making and booleans

10/26/2012

4

if Statement and 2D Objects

To check if the mouse is within a 2D object:

public void onMouseClick ( Location point ) {

if ( anObject.contains ( point ) ) {

//do something here

}

}

Comparison Operators

Operator Description

> Greater than

< Less than

== Equal to

<= Less than or equal to

>= Greater than or equal to

!= Not equal to

Page 5: CS 120 Lecture 14 Java Decision Making and booleans

10/26/2012

5

• Examples

If a=25, b=30

a<b evaluates to true

a<=b evaluates to true

a==b evaluates to false

a!=b evaluates to true

a>b evaluates to false

a>=b evaluates to false

Since these expressions are evaluated to either true or false,

they are called boolean expressions

The boolean Data Type

• A data type that has only two values: true

or false

• Can be declared with the word boolean

Ex: boolean a=true; //holds the value true

boolean b=c>d; //holds the result of c > d

boolean k; //creates k, which can take

on true or false

Page 6: CS 120 Lecture 14 Java Decision Making and booleans

10/26/2012

6

Dragging a Box

//boolean variable to determine whether the box is grabbed

private boolean boxGrabbed;

// Save starting point and whether point was in box

public void onMousePress( Location point ) {

lastPoint = point;

boxGrabbed = box.contains( point );

}

// if mouse is in box, then drag the box

public void onMouseDrag( Location point ) {

if ( boxGrabbed ) {

box.move( point.getX() - lastPoint.getX(),

point.getY() - lastPoint.getY() );

lastPoint = point;

}

}

Complete source code

More Uses of The if else Statement

• Picks one choice among many EX: Converting a score into a letter grade

if ( score >= 90 ) {

gradeDisplay.setText( "The grade is A" );

} else if ( score >= 80 ) {

gradeDisplay.setText( "The grade is B" );

} else if ( score >= 70 ) {

gradeDisplay.setText( "The grade is C" );

} else {

gradeDisplay.setText( "No credit is given");

}

Page 7: CS 120 Lecture 14 Java Decision Making and booleans

10/26/2012

7

Combining Multiple Conditionals

• && (and) combines adjoining conditions in a way that the final result will be true only if all are true Ex: a && b && c

is true if a,b,c are true

• || (or) combines adjoining conditions in a way that if any of them is true, the final result will be true

Ex: a || b || c

is true if any of a, b, c, is true

The Craps Example

• A block of code that uses || (or) to determine whether the player wins a game of Craps

if ( roll == 7 || roll == 11 ) { // 7 or 11 wins on first throw

status.setText( "You win!" );

} else if ( roll == 2 || roll == 3 || roll == 12 ) { // 2, 3, or 12 loses

status.setText( "You lose!" );

} else { // Set roll to be the point to be made

status.setText( "Try for your point!" );

point = roll;

}

Complete source code

Page 8: CS 120 Lecture 14 Java Decision Making and booleans

10/26/2012

8

Nesting

• Suppose we want to decide among several

choices based on several conditions, such as

shown by the table:

• To do this, we use conditionals inside a

conditional. This is called nesting.

Sunny Not sunny

Rich Outdoor Concert Indoor Concert

Not Rich Ultimate Frisbee Watch TV

Nesting Example

if ( sunny ) {

if ( rich ) {

activityDisplay.setText( "outdoor concert" );

} else { // not rich

activityDisplay.setText( "play ultimate" );

}

} else { // not sunny

if ( rich ) {

activityDisplay.setText( "indoor concert" );

} else { // not rich

activityDisplay.setText( "watch TV" );

}

}

Page 9: CS 120 Lecture 14 Java Decision Making and booleans

10/26/2012

9

Creating a Game of Craps

By adding an outer conditional, we can effectively determine whether the player wins:

if ( newGame ) { //Starting a new game

if ( roll == 7 || roll == 11 ) { // 7 or 11 wins on first throw

status.setText( "You win!" );

} else if ( roll == 2 || roll == 3 || roll == 12 ) { // 2, 3, or 12 loses

status.setText( "You lose!" );

} else { // Set roll to be the point to be made

status.setText( "Try for your point!" );

point = roll;

newGame = false; // no longer a new game

}

}

Complete source code

Student To Do’s

• HW6 (Three problems)

– Bring your solutions to lab.

– (If no class on Monday, check your email for submission

instructions)

• Read Java: An Eventful Approach

– Ch. 4 (Today)

– Ch. 5-6 (Next week)

• Don’t fall behind! We’re moving quickly through Java topics

because we already know the concepts from Alice!

18