Presentation is loading. Please wait.

Presentation is loading. Please wait.

April 8, 1998CS102-02Lecture 2-2 Control Structures in Java I CS 102-02 Lecture 2-2 Controlling Java.

Similar presentations


Presentation on theme: "April 8, 1998CS102-02Lecture 2-2 Control Structures in Java I CS 102-02 Lecture 2-2 Controlling Java."— Presentation transcript:

1 April 8, 1998CS102-02Lecture 2-2 Control Structures in Java I CS 102-02 Lecture 2-2 Controlling Java

2 April 8, 1998CS102-02Lecture 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 April 8, 1998CS102-02Lecture 2-2 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 April 8, 1998CS102-02Lecture 2-2 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 April 8, 1998CS102-02Lecture 2-2 If I Had an Example.. if (pulse >= 0) System.out.println(“Passed”); if (pulse >= 200) System.out.println(“Slow down!”);

6 April 8, 1998CS102-02Lecture 2-2 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 April 8, 1998CS102-02Lecture 2-2 Compounding a Statement if (temperature 10) { me.bundleUp(); me.complain(“Chicago”, badWeather); me.tryToGraduate(now); me.returnToWarmerClimes(“I love L.A.!”); }

8 April 8, 1998CS102-02Lecture 2-2 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 April 8, 1998CS102-02Lecture 2-2 A Defining Moment Declarations are good, but there’s more Definitions associate an initial value with a name Graphics graphicsObject = new Graphics();

10 April 8, 1998CS102-02Lecture 2-2 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 April 8, 1998CS102-02Lecture 2-2 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 April 8, 1998CS102-02Lecture 2-2 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.”); PulseRespirationWhat’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 April 8, 1998CS102-02Lecture 2-2 I’d Hammer in the Morning Else I’d... In Java, If...Then...Else: if ( Expression ) IfStatement else ElseStatement

14 April 8, 1998CS102-02Lecture 2-2 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 April 8, 1998CS102-02Lecture 2-2 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 April 8, 1998CS102-02Lecture 2-2 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 April 8, 1998CS102-02Lecture 2-2 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 April 8, 1998CS102-02Lecture 2-2 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 April 8, 1998CS102-02Lecture 2-2 Everything’s a Class Build a ClassAverage class in Java Create a ClassAverage object Invoke its methods

20 April 8, 1998CS102-02Lecture 2-2 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 April 8, 1998CS102-02Lecture 2-2 Data Needs? What information does the program need to work? What information will be created in running the program?

22 April 8, 1998CS102-02Lecture 2-2 Programming with Verbs What actions need to be performed? Do we need to break them down into methods?

23 April 8, 1998CS102-02Lecture 2-2 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 April 8, 1998CS102-02Lecture 2-2 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 April 8, 1998CS102-02Lecture 2-2 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 April 8, 1998CS102-02Lecture 2-2 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 April 8, 1998CS102-02Lecture 2-2 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


Download ppt "April 8, 1998CS102-02Lecture 2-2 Control Structures in Java I CS 102-02 Lecture 2-2 Controlling Java."

Similar presentations


Ads by Google