22
Flow of Control Recitation – 09/(11,12)/2008 CS 180 Department of Computer Science, Purdue University

Flow of Control Recitation – 09/(11,12)/2008 CS 180 Department of Computer Science, Purdue University

  • View
    217

  • Download
    0

Embed Size (px)

Citation preview

Flow of Control Recitation – 09/(11,12)/2008

CS 180

Department of Computer Science,

Purdue University

• Now posted on the class webpage.

• Due Wed, Sept. 17 at 10 pm.

• Start early. All questions on the class newsgroup.

• Evening consulting hours.

LWSN B146. MTW 7-10 pm.

Project 2

• If and else parts in braces are preferred for even a single statement.if (count < 3){

total = 0;}is better thanif (count < 3)

total = 0;

Statements in Braces

Statements in Braces

Benefits to do this:• Decreases the chance of introducing a bug when

adding a new statement.• Makes the program a little more “self-

documenting” (more readable and easier to maintain).

== Is NOT Always Equal • == should not be used to determine if two

objects have the same value, including two strings

• Even though (s1 == s2) might appear to work, do not use this.

• Use (s1.equals(s2)) instead to compare two strings.

Multibranch if-else Statements• if-else if-else is different from a series of

if statements.

if (score >= 60){

result = ‘P’;

}else if (score > 0){

result = ‘F’;

}else{

result = ‘Z’;

}

if (score >= 60){

result = ‘P’;

}if (score > 0){

result = ‘F’;

}else{

result = ‘Z’;

}

Short-circuit Evaluation• Can prevent problems.if ((number != 0) && (sum/number > 5))

• Can produce problems!if ((x.evaluate()) && (y.reassign()))

• How to run y.reassign() every time?

• Use & and | to replace && and || .

if ((x.evaluate()) & (y.reassign()))

• But notice & and && are different!

Input & Output of Boolean Values

Example:boolean booleanVar = false;System.out.println(booleanVar);System.out.println("Enter a boolean value:");Scanner keyboard = new Scanner(System.in);booleanVar = keyboard.nextBoolean();System.out.println("You entered " + booleanVar);

Input & Output of Boolean Values

Dialog:falseEnter a boolean value: trueYou entered true

The switch Statement

Syntax:switch (Controlling_Expression)

{

case Case_Label:

Statement(s);

break;

case Case_Label:

default:

}

The switch Statement

View sample program Listing 3.4 class MultipleBirths

Sample screen output

Sample screen output

The switch Statement

• The action for each case typically ends with the word break.

• The optional break statement prevents the consideration of other cases.

• The controlling expression can be anything that evaluates to an integral type.

The switch Statement

Example without break:switch (grade)

{

case ‘P’:

System.out.print(“You have”);

case ‘F’:

System.out.print(“…No, you have not”);

default:

}

System.out.println(“passed.”);

Enumerations• Consider a need to restrict contents of a variable

to certain values.• An enumeration lists the values a variable can

have.• Example

enum MovieRating {E, A, B}MovieRating rating;rating = MovieRating.A;

Enumerations• Now possible to use in a switch statement

Enumerations• An even better choice of descriptive identifiers for

the constants.

enum MovieRating {EXCELLENT, AVERAGE, BAD}rating = MovieRating.AVERAGE;

case EXCELLENT: ...

Specifying a Drawing Color• When drawing a shape inside an applet’s paint

method, think of the drawing being done with a pen that can change colors.

• The method setColor changes the color of the "pen."canvas.setColor(Color.YELLOW);

• Drawings done later appear on top of drawings done earlier.

Specifying a Drawing Color

View sample program, Listing 3.5class YellowFace

Sample screen output

Sample screen output

Specifying a Drawing Color

Predefined Colors for the setColor Method:

Dialog Box for a Yes/No Question

• Used to present the user with a yes/no question.• The window contains

The question text Two buttons labeled yes and no.

Dialog Box for a Yes/No Question

Example:int answer = JOptionPane.showConfirmDialog(null, "End program?", "Click Yes or No:",

JOptionPane.YES_NO_OPTION);if (answer == JOptionPane.YES_OPTION) System.exit(0);else if (answer == JOptionPane.NO_OPTION) System.out.println("One more time");

Dialog Box for a Yes/No Question

A Yes-or No-Dialog Box: