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 than if (count < 3) total = 0; 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: false Enter a boolean value: true You 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 MultipleBirthssample program 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.5 class YellowFacesample program 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: