1 / 27

Control Structures in Java I

Control Structures in Java I. Controlling Java. CS 102-02 Lecture 2-2. Control Structures Control Flow. Program inertia Java programs start with the first statement Jump to the next, and the next until... Control structures change the program flow. Selection Structures.

Download Presentation

Control Structures in Java I

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. Control Structures in Java I Controlling Java CS 102-02 Lecture 2-2

  2. Control Structures Control Flow • Program inertia • Java programs start with the first statement • Jump to the next, and the next until... • Control structures change the program flow

  3. Selection Structures • Two kinds of selection • If…then: Only do it if the condition’s true • If...then...else: Do one thing or the other

  4. If I Had a Hammer... • In Java syntax: if ( Expression ) Statement • Expression MUST be a Boolean expression Statement can be a block of statements • There’s no then in them thar hills

  5. If I Had an Example.. if (pulse >= 0) System.out.println(“Passed”); if (pulse >= 200) System.out.println(“Slow down!”);

  6. Compound Statements • If Java expects a statement, you can also use a compound statement if ( Expression ) Statement • Compound statement is a group of statements, enclosed in {}

  7. Compounding a Statement if (temperature <= 30 && windSpeed > 10) { me.bundleUp(); me.complain(“Chicago”, badWeather); me.tryToGraduate(now); me.returnToWarmerClimes(“I love L.A.!”); }

  8. The Declaration of Independence • When is a Compound Statement a Block? When it contains a declaration. • A declaration says to Java: “I’m going to use a variable, and it’s going to be of this type.” Graphics graphicsObject; • Not a particular Graphics object yet

  9. A Defining Moment • Declarations are good, but there’s more • Definitions associate an initial value with a name Graphics graphicsObject = new Graphics();

  10. Why Do We Care? Block = CompoundStatement+Declaration(s) • Declarations in a block are special because they have block scope { Graphics graphicsObject; // some code goes here // graphicsObject still exists } // now it’s gone

  11. It’s Minty Fresh • Scope is where a variable is visible • More details on scope when we get to methods • And now, back to our regularly scheduled lecture...

  12. A Little Medical Diagnosis if (pulse >= 200 || pulse <= 0) System.out.println(“Heart beats gang aft agley”); if (respiration > 75) System.out.println(“You don’t look so good”); else System.out.println(“You look a little flush.”); Pulse Respiration What’s printed? 68 35 You look a little flush. 203 78 Heart beats gang aft agley You don’t look so good 205 40 Heart beats gang aft agley You look a little flush.

  13. I’d Hammer in the Morning Else I’d... • In Java, If...Then...Else: if ( Expression ) IfStatement else ElseStatement

  14. Pile on the If Statements if (grade >= 90) System.out.println(“Wow, an A!”); else if (grade >= 80) System.out.println(“Not bad, a B!”); else if (grade >= 70) System.out.println(“Hanging in with a C.”); else if (grade >= 60) System.out.println(“Oh my, a D.”); else System.out.println(“It doesn’t look good”);

  15. While You Were Sleeping • While you were sleeping, I: • Told your family we were engaged • Hit on your brother • Fell in love with him • See what happens when you doze off for a few days...

  16. Variety Might be the Spice of Life... • Repetition is the meat and potatoes • Keep going until: • Fixed number of times (count up, count down) • A condition becomes true • A condition becomes false • An exception/error occurs

  17. While is a Close Cousin to If • In Java, repeat with while is: while ( Expression ) Statement • A brief example int product = 2; // Def’n or declaration? while (product <= 1000) product = 2 * product; // What’s product here?

  18. Determining a Class Average • The problem from the book: Develop a class-averaging program that will process an arbitrary number of letter grades each time the program is run

  19. Everything’s a Class • Build a ClassAverage class in Java • Create a ClassAverage object • Invoke its methods

  20. Java Applications • Java: It’s not just for applets anymore • Browsers need not apply • Applications are programs which can run on their own. • User interface: console or graphical

  21. Data Needs? • What information does the program need to work? • What information will be created in running the program?

  22. Programming with Verbs • What actions need to be performed? • Do we need to break them down into methods?

  23. The Data We Need import java.io.*; public class Average { public static void main( String args[] ) throws IOException { double average; // number with decimal point int counter, grade, total; // initialization phase total = 0; counter = 0; // processing phase System.out.print( "Enter letter grade, Z to end: " ); grade = System.in.read();

  24. What We’re Doing With It while ( grade != 'Z' ) { if ( grade == 'A' ) total = total + 4; else if ( grade == 'B' ) total = total + 3; else if ( grade == 'C' ) total = total + 2; else if ( grade == 'D' ) total = total + 1; System.in.skip( 2 ); counter = counter + 1; System.out.print( "Enter letter grade, Z to end: " ); grade = System.in.read(); }

  25. The End Result // Termination phase if ( counter != 0 ) { average = (double) total / counter; System.out.println( "Class average is " + average ); } else System.out.println( "No grades were entered" ); } }

  26. The Average Program // Fig. 2.9: Average.java // Class average application with // sentinel-controlled repetition. import java.io.*; public class Average { public static void main( String args[] ) throws IOException { double average; // number with decimal point int counter, grade, total; // initialization phase total = 0; counter = 0; // processing phase System.out.print( "Enter letter grade, Z to end: " ); grade = System.in.read(); while ( grade != 'Z' ) { if ( grade == 'A' ) total = total + 4; else if ( grade == 'B' ) total = total + 3; else if ( grade == 'C' ) total = total + 2; else if ( grade == 'D' ) total = total + 1; System.in.skip( 2 ); counter = counter + 1; System.out.print( "Enter letter grade, Z to end: " ); grade = System.in.read(); } // termination phase if ( counter != 0 ) { average = (double) total / counter; System.out.println( "Class average is " + average ); } else System.out.println( "No grades were entered" ); } }

  27. That’s It Until Next Time • Choosing one branch or another: use if • Watch out for dangling else’s • Looping with condition: can use while • Other ways to loop & branch • Use the most specific

More Related