330 likes | 405 Vues
Conditional Statements A Mathematical look. Relational operators < less than <= less than or equal to > greater than >= greater than or equal to == equals != not equals. Conditional Statements Some Examples. Relational operators: return a Boolean value
E N D
Conditional StatementsA Mathematical look • Relational operators < less than <= less than or equal to > greater than >= greater than or equal to == equals != not equals karel_part3_ifElse_HW
Conditional StatementsSome Examples • Relational operators: return a Boolean value • That is, returns true or false. For example 7 < 8 returns true 17 <= 8 returns false 7 > 8 returns false 17 >= 8 returns true Math.pow(5, 0) == 1 returns true 17 != 17 returns false karel_part3_ifElse_HW
Boolean Operators && logical AND • a && b is true only if both a is true and b is true, otherwise a && b is false || logical OR • a || b is true either a is true and/orb is true, otherwise a || b is false. ! Logical NOT • !a is true if a is false and!a is false if a is true karel_part3_ifElse_HW
Order of Operations • ! and parenthesis. • && • || Ties (two or more of same operator) are broken left to right karel_part3_ifElse_HW
Order of Operations • true && false || true = • true • !false && true = • true • !(false || !true) = • true • !true && (!true || !false) = • false karel_part3_ifElse_HW
Order of Operations 1) Arithmetic (*, /, +, etc.) 2) Comparison (>, <, >=, ==, etc.) 3) Logical (!, &&, ||) karel_part3_ifElse_HW
Mathematical Operators * multiplication / division + addition - subtraction % modulus (aka remainder) Math.pow(a, b) a^b karel_part3_ifElse_HW
Mathematical OperatorsOrder of Operations • These first: Left to right * multiplication / division % modulus (aka remainder) Math.pow(a, b) a^b • These next: left to right + addition - subtraction karel_part3_ifElse_HW
Mathematical Operatorssome more • What is modulus you ask? • % (Modulus) returns the remainder after dividing by its argument. For example • 21 % 10 returns 1 because after dividing 21 by 10, 1 is the remainder! • 33 % 5 returns 3 because after dividing 33 by 5, 3 is the remainder! • 100 % 10 returns 0 because after dividing 100 by 10, 0 is the remainder! karel_part3_ifElse_HW
Mathematical Operatorssome more • What is Math.pow(a, b) you ask? • Math.pow(a, b) returns the value of a^b or a raised to the bth power. For example: • Math.pow(2, 3) returns • 8 because 2^3 is 8 • Math.pow(2, 4) returns • 16 because 2^4 is 16 • Math.pow(121, 0) returns • 1 because 121^0 is 1 • Math.pow(-5, 3) • returns -125 because (-5)^3 is -125 karel_part3_ifElse_HW
Mathematical OperatorsExamples • Evaluate the following • 2 + 5 * 11 = 57 • Math.pow(2, 5) % 11 = 32 % 11 = 10 • 100 / 2 / 5 * 3 = 50 / 5 * 3 = 10 * 3 = 30 • Math.pow(-3, 3) + 11 + 50 % 13 = -27 + 11 + 11 = -5 karel_part3_ifElse_HW
Mathematical OperatorsDid we mention Integer Math? • Integer Math(NO decimals points)12 / 51 + 2 * 9 / -4 • double (or Real) math(At least one decimal point)12. / 71.3 + 2. / -4. • Mix (double and int) math(At least one decimal point)12 / 7 + 2.5 * 41.3 + 2 * 9 / -4 karel_part3_ifElse_HW
Mathematical OperatorsDid we mention Integer Math? • Integer Math12 / 5 • Is different from double (Real) math12. / 7 • Integer math is when all values are int(egers). All fractional parts are discarded! • Therefore: 12 / 5 = 2 • And 7 * 3 / 5 = 21 / 5 = 4 • And 7 * (3 / 5) = 7 * 0 = 0 karel_part3_ifElse_HW
Mathematical OperatorsAnd Real Math? • double (or Real) math • 12. / 7 = 1.714285714… • 5.5 * 2 = 11.0 • 5.5 * 2 % 3. = 2.0 • Math.pow(3, 3) = 27.0 • Special note: math.pow always returns a double • Math.pow(3, 3) / 2 = 13.5 karel_part3_ifElse_HW
Mathematical OperatorsMixed Math –int and double • These are a little tricky • 1.3 + 2 * 9 / -4 = -2.7 • Why you ask?Everything is Integer Math until–1.3 is added. Order of operations forces 2*9/-4= -4 before adding 1.3 • 12 / 7 + 2.5 * 4 • 1 + 10. = 11. • 1. / 5 + 2. * 7 / (2 – 1./3) • 0.2 + 14. / (5/3.) = .2 + (14.*3/5.) • .2 + 42./5. = .2 + 8.4 = 8.6 • Math.pow(2, 14/5. + 13/5. + 3./5) • Math.pow(2, 2.8 + 2.6 + .6) = 2^(6) = 64.0 karel_part3_ifElse_HW
Mathematical OperationsYou try! • 10. + 21. / 5 • 10.+ 4.2 = 14.2 • 12 + Math.pow(4, 1/2) • 12 + Math.pow(4,0) = 12 + 1. = 13. • 12 + Math.pow(4, 3/2. + 1./2) • 12 + Math.pow(4,2) = 12 + 16. = 28. • 12 + 68 % 6 * 3 • 12 + 2 * 3 = 12 + 6 = 18 • 7 * -5 + 11 * 9 % 5 • -35 + 99 % 5 = -35 + 4 = -31 • 7 + 1 / Math.pow(3, 2) • 7 + 1 / 9. = 7.111111 karel_part3_ifElse_HW
(Terminal) Output • System.out.println(someString); • / outputs someString to terminal • / ln: next output is on a new line • System.out.print(someString); • / outputs someString to terminal • / next output is on same line karel_part3_ifElse_HW
System.out.print(ln) System.out.print(“The ”); System.out.print(“cat in the ”); System.out.print(“hat”); • / generates The cat in the hat System.out.print(“One ”); System.out.println(“Fish”); System.out.print(“Two ”); System.out.println(“Fishies”); • / generates One Fish • / Two Fishies karel_part3_ifElse_HW
String Concatenation “The ” + “Cat” = “The Cat” 1 + “ Fish ” + 2 = “1 Fish 2” “ Fish ” + 2 + “!” = “Fish 2!” karel_part3_ifElse_HW
System.out.print(ln)Example System.out.print(1 + “cat in ”); System.out.println(1 + “ large”); System.out.print(“red”+“hat”); generates • *Line 1*/ 1cat in 1 large • *Line 2*/ redhat karel_part3_ifElse_HW
System.out.print(ln)Example System.out.print(123 + “ + ”); System.out.print(456 + “ =”); System.out.println(“ “ + 579); System.out.println(5 + “ + 2”); System.out.println(“ = 1” + 56); generates • *Line 1*/ 123 + 456 = 579 • *Line 2*/ 5 + 2 • *Line 3*/ = 156 karel_part3_ifElse_HW
System.out.print(ln)Escape sequences? • What if We want to output a string with “, ‘ or \? • Use Escape sequences as follows: • \” to output “ System.out.print(“he said \”NO\”!”); Generates: he said ”NO”! System.out.print(“\”they\’ve rallied\” again”); Generates: ”they’ve rallied” again System.out.print(“use \\\\ to to output \\“); Generates: use \\ to to output \ Special Note: use \n to start a new line! System.out.print(“\\ it\’s time\“new\nline why”); Generates: \ it’s time“new line why karel_part3_ifElse_HW
Conditionals Revisited • Nested ifif( booleanExpression ) if ( anotherBooleanExpression ) System.out.println(“true”); • Outputs: true if and only ifbooleanExpression = trueanotherBooleanExpression = true karel_part3_ifElse_HW
Conditionals Revisited • Nested ifif( booleanExpression ) System.out.println(“true”);else if ( anotherBooleanExpression ) System.out.println(“false”); • Outputs: true only ifbooleanExpression = true • Outputs: false only ifbooleanExpression = falseanotherBooleanExpression = true karel_part3_ifElse_HW
Conditionals Revisited • Dangling elseif( booleanExpression ) if ( anotherBooleanExpression ) System.out.println(“true”) else System.out.println(“false”) • The question is, to which if is the else attached? • The answer is the most recent unused else. karel_part3_ifElse_HW
Conditionals Revisited • Dangling elseif( booleanExpression ) if ( anotherBooleanExpression ) System.out.println(“true”) else System.out.println(“false”) • Outputs: true only ifbooleanExpression = true anotherBooleanExpression = true • Outputs: false only ifbooleanExpression = trueanotherBooleanExpression = false karel_part3_ifElse_HW
Conditionals Revisited • Dangling elseif( booleanExpression ) if ( anotherBooleanExpression ) System.out.println(“true”)else System.out.println(“false”) • How is the if structured to have the else associated with the first if • Use brackets! • Indenting will not work! • This is how I will trick you karel_part3_ifElse_HW
Conditionals Revisited • Dangling elseif( booleanExpression ) { if ( anotherBooleanExpression ) System.out.println(“true”) }else System.out.println(“false”) karel_part3_ifElse_HW
Conditionals Revisited • Nested if’s if( booleanExpression ) if ( anotherBooleanExpression ) System.out.println(“true - true”) else System.out.println(“true - false”)else if ( differentBooleanExpression ) System.out.println(“false - true”) else System.out.println(“false - false”) • Outputs: true - true ifbooleanExpression = trueanotherBooleanExpression = true karel_part3_ifElse_HW
Conditionals Revisited • Nested if’sif( booleanExpression ) if ( anotherBooleanExpression ) System.out.println(“true - true”) else System.out.println(“true - false”)else if ( differentBooleanExpression ) System.out.println(“false - true”) else System.out.println(“false - false”) • Outputs: true - false ifbooleanExpression = trueanotherBooleanExpression = false karel_part3_ifElse_HW
Conditionals Revisited • Nested if’s if( booleanExpression ) if ( anotherBooleanExpression ) System.out.println(“true - true”) else System.out.println(“true - false”)else if ( differentBooleanExpression ) System.out.println(“false - true”) else System.out.println(“false - false”) • Outputs: false - true ifbooleanExpression = false differentBooleanExpression = true karel_part3_ifElse_HW
Conditionals Revisited • Nested if’s if( booleanExpression ) if ( anotherBooleanExpression ) System.out.println(“true - true”) else System.out.println(“true - false”)else if ( differentBooleanExpression ) System.out.println(“false - true”) else System.out.println(“false - false”) • Outputs: false - false ifbooleanExpression = falsedifferentBooleanExpression = false karel_part3_ifElse_HW
WOW That was a lot! karel_part3_ifElse_HW