SLIDE 2
What did we talk about last time? Wrapper classes Examples if statements
SLIDE 3
SLIDE 4
SLIDE 5
SLIDE 6
So far we have only considered Java programs that do one
thing after another, in sequence
Our programs have not had the ability to choose between
different possibilities
Now, they will!
SLIDE 7
The if-statement: x is small will only print out if x is less than 5 In this case, we know that it is, but x could come from user
input or a file or elsewhere
int x = 4; if( x < 5 ) { System.out.println("x is small!"); }
SLIDE 8
The if part Any boolean expression Executable statements
if( condition ){ statements; }
SLIDE 9 A very natural if-then sort of relationship If the condition is true, then do something For example:
- If I win a million dollars,
- Then I’ll yodel like an insane Swiss monkey
SLIDE 10
Write a program that prompts the user for the secret
password
If they enter the word "eggplant", congratulate them for
knowing the password
SLIDE 11
SLIDE 12 Any statement that evaluates to a boolean is legal Examples:
- x == y
- true
- Character.isDigit('r')
- s.equals("Help me!") && (z < 4)
SLIDE 13 The most common condition you will find is a comparison
between two things
In Java, that comparison can be:
equals
does not equal
less than
less than or equal to
greater than
greater than or equal to
These are called relational operators
SLIDE 14
You can use the == operator to compare any two things of the
same type
Different numerical types can be compared as well (3 ==
3.0)
Be careful with double types, 0.33333333 is not equal to
0.33333332
int x = 3; if( x == 4 ) { System.out.println("This doesn't print"); }
SLIDE 15
Any place you could have used the == operator, you can use
the != operator
If == gives true, the != operator will always give false, and
vice versa
If you want to negate a condition, you can always use the ! as
a not is the same as
if( x != 4 ) if( !(x == 4) )
SLIDE 16
Remember, a single equal sign (=) is the assignment operator
(think of a left-pointing arrow)
A double equals (==) is a comparison operator
int y = 10; if( y = 6 ) // compiler error! boolean b = false; if( b = false ) // no error but wrong
SLIDE 17
Inequality is very important in programming You may want to take an action as long as a value is below a
certain threshold
For example, you might want to keep bidding at an auction
until the price is greater than what you can afford
Watch for strict inequality (<) vs. non-strict inequality (<=)
if( x <= 4 ) { System.out.println("x is less than 5"); }
SLIDE 18 Just like less than or equal to, except the opposite Note that (because of the All-Powerful Math Gods) the
- pposite of <= is > and the opposite of >= is <
Thus,
- !( x <= y ) is equivalent to ( x > y )
- !( x >= y ) is equivalent to ( x < y )
SLIDE 19
SLIDE 20 Sometimes you have to make a decision If a condition is true, you go one way, if not, you go the other For example:
▪ Then I throw a kegger to celebrate
▪ I punch Dr. Wittman in the face
SLIDE 21
Notice the nature of this kind of condition Both outcomes cannot happen Either a kegger gets thrown or Dr. Wittman gets punched in
the face
For these situations, we use the else construct
SLIDE 22 Two different
if( condition ) { statements1; } else { statements2; }
SLIDE 23
Scanner in = new Scanner(System.in); int balance = in.nextInt(); if( balance < 0 ) { System.out.println("You are in debt!"); } else { System.out.println("You have $" + balance); }
SLIDE 24
SLIDE 25 You can have one or many statements inside the braces of an if or an else However, you can optionally leave off the braces if there's only a single
statement
It's probably a good idea to use the braces until you really know what you're
doing
Some programmers always use them
if( x == 4 ) { System.out.println("I hate 4"); } if( x == 4 ) System.out.println("I hate 4"); // braces not needed
SLIDE 26
Sometimes you want to make one set of decisions based on
another set of decisions
if-statements can be nested inside the bodies of other if-
statements
You can put if-statements inside of if-statements inside of
if-statements… going arbitrarily deep
SLIDE 27
if( condition1 ){ statement1;
if( condition2 ) {
if( condition3 ) statement2; …
}
}
SLIDE 28 For the next example, recall the 4 quadrants of the Cartesian
coordinate system
x
y
(0,0) 1
2 3 4
SLIDE 29
Find which quadrant the point (x,y) is in
if( x >= 0.0 ) { if( y >= 0.0 ) System.out.println("Quadrant 1"); else System.out.println("Quadrant 4"); } else { if( y >= 0.0 ) System.out.println("Quadrant 2"); else System.out.println("Quadrant 3"); }
SLIDE 30
You can list a sequence of exclusive possibilities using nesting:
if( index == 1 ) System.out.println("First"); else if( index == 2 ) System.out.println("Second"); else if( index == 3 ) System.out.println("Third"); else System.out.println(index + "th");
SLIDE 31
A block of code is treated just like one statement A whole if-else is treated the same
if( … ) statement1; else if( … ) statement2; else statement3; if( … ){ statement1; } else { if( … ) statement2; else statement3; }
=
SLIDE 32
SLIDE 33
Examples Pitfalls with if statements switch statements
SLIDE 34
Keep reading Chapter 4 of the textbook Keep working on Project 1 (due tonight!)