Title: Control Structures in Java I
1Control Structures in Java I
Controlling Java
2Control 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
3Selection Structures
- Two kinds of selection
- Ifthen Only do it if the conditions true
- If...then...else Do one thing or the other
4If I Had a Hammer...
- In Java syntax
- if ( Expression ) Statement
- Expression MUST be a Boolean expression
- Statement can be a block of statements
- Theres no then in them thar hills
5If I Had an Example..
- if (pulse 0) System.out.println(Passed)
- if (pulse 200)
- System.out.println(Slow down!)
6Compound 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
7Compounding a Statement
if (temperature 10)
me.bundleUp() me.complain(Chicago,
badWeather) me.tryToGraduate(now)
me.returnToWarmerClimes(I love L.A.!)
8The Declaration of Independence
- When is a Compound Statement a Block? When it
contains a declaration. - A declaration says to Java Im going to use a
variable, and its going to be of this type. - Graphics graphicsObject
- Not a particular Graphics object yet
9A Defining Moment
- Declarations are good, but theres more
- Definitions associate an initial value with a
name - Graphics graphicsObject new Graphics()
10Why Do We Care?
- Block CompoundStatementDeclaration(s)
- Declarations in a block are special because they
have block scope - Graphics graphicsObject
- // some code goes here
- // graphicsObject still exists
-
- // now its gone
11Its 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...
12A Little Medical Diagnosis
if (pulse 200 pulse n(Heart beats gang aft agley) if (respiration
75) System.out.println(You dont look so
good) else System.out.println(You look a
little flush.) Pulse Respiration Whats
printed? 68 35 You look a little flush.
203 78 Heart beats gang aft agley You dont
look so good 205 40 Heart beats gang aft
agley You look a little flush.
13Id Hammer in the Morning Else Id...
- In Java, If...Then...Else
- if ( Expression )
- IfStatement
- else
- ElseStatement
14Pile 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 doesnt look good)
15While 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...
16Variety 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
17While is a Close Cousin to If
- In Java, repeat with while is
- while ( Expression ) Statement
- A brief example
- int product 2 // Defn or declaration?
- while (product
- product 2 product
- // Whats product here?
18Determining 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
19Everythings a Class
- Build a ClassAverage class in Java
- Create a ClassAverage object
- Invoke its methods
20Java Applications
- Java Its not just for applets anymore
- Browsers need not apply
- Applications are programs which can run on their
own. - User interface console or graphical
21Data Needs?
- What information does the program need to work?
- What information will be created in running the
program?
22Programming with Verbs
- What actions need to be performed?
- Do we need to break them down into methods?
23The 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()
24What Were 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()
25The 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" )
26The 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" )
27Thats It Until Next Time
- Choosing one branch or another use if
- Watch out for dangling elses
- Looping with condition can use while
- Other ways to loop branch
- Use the most specific