330 likes | 454 Views
Week 4 - Monday. COMP 1600. Last time. What did we talk about last time? Wrapper classes Examples if statements. Questions?. Project 1. Conditional Execution Review. Behold!. The if -statement: x is small will only print out if x is less than 5
E N D
Week 4 - Monday COMP 1600
Last time • What did we talk about last time? • Wrapper classes • Examples • if statements
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 intx = 4; if( x < 5 ) System.out.println("x is small!");
Anatomy of an if Any boolean expression The if part if( condition ) statement; Any single executable statement
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)
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
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, 0.33333333 is not equal to 0.33333332 int x = 3; if( x == 4 ) System.out.println("This doesn't print");
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) )
= != == • 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
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");
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 )
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 COMP 1600, • Then I throw a kegger to celebrate • Otherwise, • I punch Dr. Wittman in the face
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
Anatomy of an if-else if( condition ) statement1; else statement2; Two different outcomes
else example Scanner in = new Scanner(System.in); intbalance = in.nextInt(); if( balance < 0 ) System.out.println("You are in debt!"); else System.out.println("You have $" + balance);
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; }
An if with multiple statements if( condition ){ statement1; statement2; … statementn; } A whole bunch of statements
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
Nested ifs if( condition1 ){ statement1; if( condition2 ) { if( condition3 ) statement2; … } }
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
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"); } else { if( y >= 0.0 ) System.out.println("Quadrant 2"); else System.out.println("Quadrant 3"); }
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");
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 { if( … ) statement2; else statement3; } =
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?
Next time… • Pitfalls with if statements • Examples • switch statements
Reminders • CS Club tonight! • 4-6 p.m. in The Point 113 • Keep reading Chapter 4 of the textbook • Keep working on Project 1 (due this Friday) • Exam 1 is next Monday