Download presentation
Presentation is loading. Please wait.
1
Week 4 - Monday CS 121
2
Last time What did we talk about last time? if statements Lab 3
3
Questions?
4
Project 1
5
Conditional Execution Review
6
Conditional execution
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!
7
Behold! 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!");
8
if( condition ) statement; Anatomy of an if Any boolean expression
The if part if( condition ) statement; Any single executable statement
9
Conditions
10
Conditions in the if Any statement that evaluates to a boolean is legal Examples: x == y true Character.isDigit('r') s.equals("Help me!") && (z < 4)
11
Comparison 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
12
Equals 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, is not equal to int x = 3; if( x == 4 ) System.out.println("This doesn't print");
13
Not Equals 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) )
14
= != == 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
15
Less Than (or Equal To) 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");
16
Greater Than (or Equal To)
Just like less than or equal to, except the opposite Note that (because of the All-Powerful Math Gods) the opposite of <= is > and the opposite of >= is < Thus, !( x <= y ) is equivalent to ( x > y ) !( x >= y ) is equivalent to ( x < y )
17
Else
18
Either/Or Sometimes you have to make a decision
If a condition is true, you go one way, if not, you go the other For example: If I pass CS121, Then I throw a kegger to celebrate Otherwise, I punch Dr. Wittman in the face
19
Exclusivity 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
20
Two different outcomes
Anatomy of an if-else if( condition ) statement1; else statement2; Two different outcomes
21
else example 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);
22
Multiple Statements and Nesting
23
What if you need to do several things conditionally?
No problem Use braces to treat a group of statements like a single statement if( x == 4 ) { System.out.println("I hate 4"); System.out.println("Let's change x."); x = 10; }
24
An if with multiple statements
if( condition ) { statement1; statement2; … statementn; } A whole bunch of statements
25
Nesting 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
26
Nested ifs if( condition1 ) { statement1; if( condition2 )
… }
27
An example using quadrants
For the next example, recall the 4 quadrants of the Cartesian coordinate system y 2 1 (0,0) -x x 3 4 -y
28
Nesting example 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"); } System.out.println("Quadrant 2"); System.out.println("Quadrant 3");
29
if and else if 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");
30
else-if doesn’t actually exist
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 statement2; statement3; =
31
Pitfalls
32
Watch out! Now you are controlling the flow of execution in your program There is a wider range of mistakes you can make when giving instructions Huge chunks of code can be executed or skipped by mistake Here are a few things to watch out for
33
Empty statements Remember that an if-statement is not an executable statement It does not end with a semicolon if( balance < 0 ); // empty statement { // this block always runs System.out.println("You owe a fee!"); balance -= 15; }
34
Confusing indentation
In some languages, indentation actually matters Java ignores whitespace "Fight!" prints no matter what if( enemies > 2 ) System.out.println("Run away!"); else defense = true; System.out.println("Fight!");
35
Imprecise conditions It’s easy to make logical errors when writing conditions If an airline allows two or fewer bags on the plane, someone might code that as: But this is too restrictive. It should be: if( bags < 2 ) // only allows 1 or 0 boarding = true; if( bags <= 2 ) boarding = true;
36
Reversed conditions Sometimes it’s easy to get a condition backwards
Try not to assume you wrote the condition correctly Always double check if( number % 3 == 0 ) System.out.println("Not divisible by 3!"); else System.out.println("Divisible by 3!");
37
if Examples
38
Speed limit Sometimes you probably break the speed limit
But, there's one speed limit you can never break The speed of light c is about 3 x 108 m/s Given a variable named speed of type double, what's an if-statement that will print an error message if speed is larger than c?
39
Upcoming
40
Next time… Examples switch statements
41
Reminders Keep reading Chapter 4 of the textbook
Keep working on Project 1 (due this Friday) Exam 1 is next Monday
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.