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);
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• 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
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");