1 / 42

Chapter 3

Chapter 3. Ch 1 – Introduction to Computers and Java. Flow of Control Branching. Chapter 3. 3.1 The if-else Statement 3.2 The Type boolean 3.3 The switch Statement 3.4 Graphics Supplement. 3.1 The if-else Statement. Flow Chart Deconstructed. Start.

dusan
Télécharger la présentation

Chapter 3

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Chapter 3 Ch 1 – Introduction toComputers and Java Flow of ControlBranching

  2. Chapter 3 3.1 The if-else Statement 3.2 The Type boolean 3.3 The switch Statement 3.4 Graphics Supplement

  3. 3.1 The if-else Statement

  4. Flow Chart Deconstructed Start Terminator: Show start/stop points Decision:Make a choice booleanexpression T F truestatements falsestatement Process: Statements to execute Stop Connector:Connect lines

  5. Flow Chart Deconstructed<Taxes owed> Start income <= NO_TAX_AMOUNT T F taxesOwed = 0.0 taxesOwed = income * TAX_RATE Stop

  6. If else Deconstructed<Taxes owed> boolean expression ... if (income <= NO_TAX_AMOUNT) { taxesOwed = 0.0; } else { taxesOwed = income * TAX_RATE; } //end if ... true statements false statements

  7. Application Deconstructed<TaxesOwed.java> package taxesowed; import java.util.Scanner; public class TaxesOwed { public static final double NO_TAX_AMOUNT = 10000.0; public static final double TAX_RATE = 0.03; public static void main(String[] args) { double income; double taxesOwed; Scanner keyboard = new Scanner(System.in); System.out.print("Enter your income amount: $"); income = keyboard.nextDouble();

  8. Application Deconstructed<TaxesOwed.java> if (income <= NO_TAX_AMOUNT) { taxesOwed = 0.0; } else { taxesOwed = income * TAX_RATE; }// end else System.out.println("You owe $" + taxesOwed + " on an income of $" + income); }// end main() }// end TaxesOwed

  9. Boolean expressions may usethe following relational operators

  10. ... and the followinglogical operators

  11. Application Deconstructed<StringEquality.java> package stringequality; import java.util.Scanner; public class StringEquality { public static void main(String[] args) { String str1; String str2; Scanner keyboard = new Scanner(System.in); System.out.print("Enter some text: "); str1 = keyboard.nextLine(); System.out.print("Enter more text: "); str2 = keyboard.nextLine();

  12. Application Deconstructed<StringEquality.java> System.out.println(); System.out.println("str1 = \"" + str1 + "\" : str2 = \"" + str2 + "\""); System.out.println(); System.out.println("str1 == str2 ? " + (str1 == str2)); System.out.println("str1.equals(str2) ? " + str1.equals(str2)); System.out.println("str2.equals(str1) ? " + str2.equals(str1)); == asks: are they the same object? The others compare the text.

  13. Application Deconstructed<StringEquality.java> str2 = "apples are red"; System.out.println(); System.out.println("str1 = \"" + str1 + "\" : str2 = \"" + str2 + "\""); System.out.println(); System.out.println("str1.equals(str2) ? " + str1.equals(str2)); System.out.println("str1.equalsIgnoreCase(str2) ? " + str1.equalsIgnoreCase(str2)); }// end main() }// end StringEquality

  14. Application Deconstructed<StringEquality.java>

  15. Application Deconstructed<MultiBranchIf.java> package multibranchif; import java.util.Scanner; public class MultiBranchIf { public static final int SUN = 1; public static final int MON = 2; public static final int TUE = 3; public static final int WED = 4; public static final int THU = 5; public static final int FRI = 6; public static final int SAT = 7; public static void main(String[] args) { Scanner keyboard = new Scanner(System.in); int weekDayNumber; String weekDayName = ""; constants for the days of the week

  16. Application Deconstructed<MultiBranchIf.java> System.out.print("Enter the day of the week [1-Sunday...7-Saturday]: "); weekDayNumber = keyboard.nextInt(); if (weekDayNumber == SUN) { weekDayName = "Sunday"; }else if (weekDayNumber == MON) { weekDayName = "Monday"; }else if (weekDayNumber == TUE) { weekDayName = "Tuesday"; }else if (weekDayNumber == WED) { weekDayName = "Wednesday"; }else if (weekDayNumber == THU) { weekDayName = "Thursday"; }else if (weekDayNumber == FRI) { weekDayName = "Friday"; }else if (weekDayNumber == SAT) { weekDayName = "Saturday"; }// end if This is just an if else, where each else contains an if else.

  17. Application Deconstructed<MultiBranchIf.java> System.out.println("I see you chose " + weekDayName + "."); }// end main() }// end MultiBranchIf

  18. The conditional operator isvery handy // The following if-else: if (minute == 60) { minute = 0; } else { minute += 1; } // can be written with a conditional operator as: minute = (minute == 60)? 0 : minute + 1;

  19. Recap • Use flowcharts to express algorithms. • Use the if for decisions. • Use .equals or .equalsIgnoreCase with strings

  20. 3.2The Type boolean True or False?

  21. Boolean expressions evaluateto true or false • number > 0 • True if number > 0, false otherwise • 3 > 4 • False • 3 • True, since not 0

  22. Boolean variables simplify // Testing for leap year. if ( (year % 100 != 0) && (year % 4 == 0) || (year % 400 == 0) ) { // leap year } The && has higher priority than || // Testing for leap year. boolean isLeap = (year % 100 != 0) && (year % 4 == 0) || (year % 400 == 0); if (isLeap) { // leap year }

  23. Be mindful of the order of evaluation • Parentheses go first, then • Arithmetic, then • Relational, and then • Logical

  24. Brainteaser time! int x = 3 * 5 + (4 – 5) / 2 + 6 % 4; bool goAhead = 5 > 3 || 3 + 5 < 3 * 2; bool isRaining = true; bool haveUmbrella = false; bool gotWet = isRaining && !haveUmbrella;

  25. Booleans use true or false boolean isOld = true; System.out.println("isOld = " + isOld); // displays isOld = true System.out.print("Answer true or false. This is fun: "; boolean isOfAge = keyboard.nextBoolean(); // IO Answer true of false. This is fun: true

  26. Recap • Booleans hold either true or false. • (), arithmetic, relational, logical, in that order. • Boolean variables simplify code.

  27. 3.3The switchstatement case 1 True statements False case n True statements False default

  28. Switch Deconstructed switch (expression) { case label1: statements; [break]; case label2: statements; [break]; ... default: statements; [break]; } break is optional sdk 7: label canbe a string default is optional

  29. Switch Deconstructed<DayOfTheWeek> // ... code omitted switch (dayOfTheWeek) { case MON: case TUE: case WED: case THU: case FRI: System.out.println("Bah, still a work day!"); break; case SAT: case SUN: System.out.println("Woo hoo, weekend!); break; default: System.out.println("No comprendo!"); break; }

  30. Brainteaser time! Draw the flow chart for the DayOfTheWeek switch

  31. Application Deconstructed<DayOfTheWeek.java> package dayoftheweek; import java.util.Scanner; public class DayOfTheWeek { public static final int SUN = 1; public static final int MON = 2; public static final int TUE = 3; public static final int WED = 4; public static final int THU = 5; public static final int FRI = 6; public static final int SAT = 7; public static void main(String[] args) { int dayOfTheWeek; Scanner keyboard = new Scanner(System.in);

  32. Application Deconstructed<DayOfTheWeek.java> System.out.print("Enter the day of the week [Sun = 1...Sat = 7]: "); dayOfTheWeek = keyboard.nextInt(); switch (dayOfTheWeek) { case MON: case TUE: case WED: case THU: case FRI: System.out.println("Bah, still a work day!"); break; case SAT: case SUN: System.out.println("Woo hoo, weekend!"); break; default: System.out.println("No comprendo!"); break; }// end switch }// end main() }// end DayOfTheWeek

  33. 3.4Graphics Supplement

  34. Applet Deconstructed< YellowSmileyFace.java > package yellowsmileyface; import javax.swing.JApplet; import java.awt.Color; import java.awt.Graphics; public class YellowSmileyFace extends JApplet { public static final int FACE_DIAMETER = 200; public static final int X_FACE = 100; public static final int Y_FACE = 50; public static final int EYE_WIDTH = 10; public static final int EYE_HEIGHT = 20; public static final int X_RIGHT_EYE = 155; public static final int X_LEFT_EYE = 230; public static final int Y_RIGHT_EYE = 100; public static final int Y_LEFT_EYE = Y_RIGHT_EYE; public static final int NOSE_DIAMETER = 10; public static final int X_NOSE = 195; public static final int Y_NOSE = 135;

  35. Applet Deconstructed< YellowSmileyFace.java > public static final int MOUTH_WIDTH = 100; public static final int MOUTH_HEIGHT = 50; public static final int X_MOUTH = 150; public static final int Y_MOUTH = 160; public static final int MOUTH_START_ANGLE = 180; public static final int MOUTH_EXTENT_ANGLE = 180; @Override public void paint(Graphics canvas) { canvas.setColor(Color.YELLOW); canvas.drawOval(X_FACE, Y_FACE, FACE_DIAMETER, FACE_DIAMETER); canvas.setColor(Color.BLACK); canvas.drawOval(X_FACE, Y_FACE, FACE_DIAMETER, FACE_DIAMETER);

  36. Applet Deconstructed< YellowSmileyFace.java > canvas.setColor(Color.BLUE); canvas.fillOval(X_RIGHT_EYE, Y_RIGHT_EYE, EYE_WIDTH, EYE_HEIGHT); canvas.fillOval(X_LEFT_EYE, Y_LEFT_EYE, EYE_WIDTH, EYE_HEIGHT); canvas.setColor(Color.BLACK); canvas.fillOval(X_NOSE, Y_NOSE, NOSE_DIAMETER, NOSE_DIAMETER); canvas.setColor(Color.RED); canvas.drawArc(X_MOUTH, Y_MOUTH, MOUTH_WIDTH, MOUTH_HEIGHT, MOUTH_START_ANGLE, MOUTH_EXTENT_ANGLE); }// end paint() }// end HappyFaceAppletConstants

  37. Applet Deconstructed< YellowSmileyFace.java >

  38. Application Deconstructed< NameThatCountry.java > package namethatcountry; import javax.swing.JFrame; import java.awt.Color; import java.awt.Graphics; import javax.swing.JOptionPane; public class NameThatCountry extends JFrame { public static final int FRAME_WIDTH = 600; public static final int FRAME_HEIGHT = 400; public static final int BAND_WIDTH = 120; public static final int BAND_HEIGHT = 250; public static final int X_FLAG = (FRAME_WIDTH - 3 * BAND_WIDTH) / 2; public static final int Y_FLAG = (FRAME_HEIGHT - BAND_HEIGHT) / 2; public static final int X_GREEN = X_FLAG; public static final int Y_GREEN = Y_FLAG;

  39. Application Deconstructed< NameThatCountry.java > public static final int X_WHITE = X_GREEN + BAND_WIDTH + 1; public static final int Y_WHITE = Y_FLAG; public static final int X_ORANGE = X_WHITE + BAND_WIDTH + 1; public static final int Y_ORANGE = Y_FLAG; public static void main(String[] args) { NameThatCountry flagWindow = new NameThatCountry(); flagWindow.setVisible(true); String countryName = JOptionPane.showInputDialog("Can you name this country?"); if ( countryName.equalsIgnoreCase("Ireland") ) { JOptionPane.showMessageDialog(null, "Nice Job."); } else { JOptionPane.showMessageDialog(null, "Sorry, its Ireland"); }// end else System.exit(0); }// end main()

  40. Application Deconstructed< NameThatCountry.java > public NameThatCountry() { setSize(FRAME_WIDTH, FRAME_HEIGHT); setTitle("Name that country"); }// end NameThatCountry() @Override public void paint(Graphics canvas) { canvas.setColor(Color.GREEN); canvas.fillRect(X_GREEN, Y_GREEN, BAND_WIDTH, BAND_HEIGHT); canvas.setColor(Color.WHITE); canvas.fillRect(X_WHITE, Y_WHITE, BAND_WIDTH, BAND_HEIGHT); canvas.setColor(Color.ORANGE); canvas.fillRect(X_ORANGE, Y_ORANGE, BAND_WIDTH, BAND_HEIGHT); } }// end NameThatCountry

  41. Application Deconstructed< NameThatCountry.java >

  42. Application Deconstructed< NameThatCountry.java >

More Related