Control Structures in Java I Controlling Java CS

  • Slides: 27
Download presentation
Control Structures in Java I Controlling Java CS 102 -02 Lecture 2 -2 April

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

Control Structures Control Flow • Program inertia – Java programs start with the first

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 April 8, 1998 CS 102 -02 Lecture 2 -2

Selection Structures • Two kinds of selection – If…then: Only do it if the

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 April 8, 1998 CS 102 -02 Lecture 2 -2

If I Had a Hammer. . . • In Java syntax: if ( Expression

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 April 8, 1998 CS 102 -02 Lecture 2 -2

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

If I Had an Example. . if (pulse >= 0) System. out. println(“Passed”); if (pulse >= 200) System. out. println(“Slow down!”); April 8, 1998 CS 102 -02 Lecture 2 -2

Compound Statements • If Java expects a statement, you can also use a compound

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 {} April 8, 1998 CS 102 -02 Lecture 2 -2

Compounding a Statement if (temperature <= 30 && wind. Speed > 10) { me.

Compounding a Statement if (temperature <= 30 && wind. Speed > 10) { me. bundle. Up(); me. complain(“Chicago”, bad. Weather); me. try. To. Graduate(now); me. return. To. Warmer. Climes(“I love L. A. !”); } April 8, 1998 CS 102 -02 Lecture 2 -2

The Declaration of Independence • When is a Compound Statement a Block? When it

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 graphics. Object; • Not a particular Graphics object yet April 8, 1998 CS 102 -02 Lecture 2 -2

A Defining Moment • Declarations are good, but there’s more • Definitions associate an

A Defining Moment • Declarations are good, but there’s more • Definitions associate an initial value with a name Graphics graphics. Object = new Graphics(); April 8, 1998 CS 102 -02 Lecture 2 -2

Why Do We Care? Block = Compound. Statement+Declaration(s) • Declarations in a block are

Why Do We Care? Block = Compound. Statement+Declaration(s) • Declarations in a block are special because they have block scope { Graphics graphics. Object; // some code goes here // graphics. Object still exists } // now it’s gone April 8, 1998 CS 102 -02 Lecture 2 -2

It’s Minty Fresh • Scope is where a variable is visible • More details

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. . . April 8, 1998 CS 102 -02 Lecture 2 -2

A Little Medical Diagnosis if (pulse >= 200 || pulse <= 0) System. out.

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 68 Respiration 35 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. April 8, 1998 What’s printed? You look a little flush. CS 102 -02 Lecture 2 -2

I’d Hammer in the Morning Else I’d. . . • In Java, If. .

I’d Hammer in the Morning Else I’d. . . • In Java, If. . . Then. . . Else: if ( Expression ) If. Statement else Else. Statement April 8, 1998 CS 102 -02 Lecture 2 -2

Pile on the If Statements if (grade >= 90) System. out. println(“Wow, an A!”);

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”); April 8, 1998 CS 102 -02 Lecture 2 -2

While You Were Sleeping • While you were sleeping, I: – Told your family

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. . . April 8, 1998 CS 102 -02 Lecture 2 -2

Variety Might be the Spice of Life. . . • Repetition is the meat

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 April 8, 1998 CS 102 -02 Lecture 2 -2

While is a Close Cousin to If • In Java, repeat with while is:

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? April 8, 1998 CS 102 -02 Lecture 2 -2

Determining a Class Average • The problem from the book: Develop a class-averaging program

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 April 8, 1998 CS 102 -02 Lecture 2 -2

Everything’s a Class • Build a Class. Average class in Java • Create a

Everything’s a Class • Build a Class. Average class in Java • Create a Class. Average object • Invoke its methods April 8, 1998 CS 102 -02 Lecture 2 -2

Java Applications • Java: It’s not just for applets anymore • Browsers need not

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 April 8, 1998 CS 102 -02 Lecture 2 -2

Data Needs? • What information does the program need to work? • What information

Data Needs? • What information does the program need to work? • What information will be created in running the program? April 8, 1998 CS 102 -02 Lecture 2 -2

Programming with Verbs • What actions need to be performed? • Do we need

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

The Data We Need import java. io. *; public class Average { public static

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

What We’re Doing With It while ( grade != 'Z' ) { if (

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(); April 8, 1998 CS 102 -02 Lecture 2 -2

The End Result // Termination phase if ( counter != 0 ) { average

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" ); } } April 8, 1998 CS 102 -02 Lecture 2 -2

The Average Program // Fig. 2. 9: Average. java // Class average application with

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 counter, grade, total; 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(); // initialization phase total = 0; counter = 0; } // processing phase 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" ); } } April 8, 1998 CS 102 -02 Lecture 2 -2

That’s It Until Next Time • Choosing one branch or another: use if –

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 April 8, 1998 CS 102 -02 Lecture 2 -2