Presentation is loading. Please wait.

Presentation is loading. Please wait.

Chapter 3:Decision Structures.  3.1 The if Statement  3.2 The if-else Statement  3.3 The if-else-if Statement  3.4 Nested if Statements  3.5 Logical.

Similar presentations


Presentation on theme: "Chapter 3:Decision Structures.  3.1 The if Statement  3.2 The if-else Statement  3.3 The if-else-if Statement  3.4 Nested if Statements  3.5 Logical."— Presentation transcript:

1 Chapter 3:Decision Structures

2  3.1 The if Statement  3.2 The if-else Statement  3.3 The if-else-if Statement  3.4 Nested if Statements  3.5 Logical Operators  3.6 Comparing String Objects  3.7 More About Variable Declaration and Scope  3.9 The switch Statement  3.10 Creating Objects with the DecimalFormat Class  3.12 Common Errors to Avoid

3 Nested if Statements  If an if statement appears inside of another if statement (single or block) it is called a nested if statement.  The nested if is only executed if the if statement it is in results in a true condition.  Nested if statements can get very complex, very quickly.

4 LoanQualifier.java double salary, yearsOnJob; String input; input = JOptionPane.showInputDialog("Enter your " + "annual salary."); salary = Double.parseDouble(input); input = JOptionPane.showInputDialog("Enter the number of " +"years at your current job."); yearsOnJob = Double.parseDouble(input);

5 LoanQualifier.java if (salary >= 30000) { if (yearsOnJob >= 2) { JOptionPane.showMessageDialog(null, "You qualify " + "for the loan."); } else { JOptionPane.showMessageDialog(null, "You must have " + "been on your current job for at least " + "two years to qualify."); } else { JOptionPane.showMessageDialog(null, "You must earn at” + “least $30,000 per year to qualify."); }

6 Nested if Statement Flowcharts Wear a jacket. Yes Is it cold outside? Wear shorts. Is it snowing? Wear a parka. No Yes

7 if-else Matching  Curly brace use is not required if there is only one statement to be conditionally executed.  However, sometimes curly braces can help make the program more readable.  Additionally, proper indentation makes it much easier to match up else statements with their corresponding if statement.

8 if-else Matching if (employed == 'y') { if (recentGrad == 'y') { System.out.println("You qualify for the special interest rate."); } else { System.out.println("You must be a recent college graduate to qualify."); } else { System.out.println("You must be employed to qualify."); } This else matches with this if. This else matches with this if.

9 Nested if Statements  If an if statement appears inside of another if statement (single or block) it is called a nested if statement.  The nested if is only executed if the if statement it is in results in a true condition.  Nested if statements can get very complex, very quickly.

10 LoanQualifier.java double salary, yearsOnJob; String input; input = JOptionPane.showInputDialog("Enter your " + "annual salary."); salary = Double.parseDouble(input); input = JOptionPane.showInputDialog("Enter the number of " +"years at your current job."); yearsOnJob = Double.parseDouble(input);

11 LoanQualifier.java if (salary >= 30000) { if (yearsOnJob >= 2) { JOptionPane.showMessageDialog(null, "You qualify " + "for the loan."); } else { JOptionPane.showMessageDialog(null, "You must have " + "been on your current job for at least " + "two years to qualify."); } else { JOptionPane.showMessageDialog(null, "You must earn at” + “least $30,000 per year to qualify."); }

12 Nested if Statement Flowcharts Wear a jacket. Yes Is it cold outside? Wear shorts. Is it snowing? Wear a parka. No Yes

13 if-else Matching  Curly brace use is not required if there is only one statement to be conditionally executed.  However, sometimes curly braces can help make the program more readable.  Additionally, proper indentation makes it much easier to match up else statements with their corresponding if statement.

14 if-else Matching if (employed == 'y') { if (recentGrad == 'y') { System.out.println("You qualify for the special interest rate."); } else { System.out.println("You must be a recent college graduate to qualify."); } else { System.out.println("You must be employed to qualify."); } This else matches with this if. This else matches with this if.

15 Logical Operators  Java provides two binary logical operators (&& and ||) that are used to combine boolean expressions.  Java also provides one unary (!) logical operator to reverse the truth of a boolean expression.

16 Logical Operators OperatorMeaningEffect &&AND Connects two boolean expressions into one. Both expressions must be true for the overall expression to be true. ||OR Connects two boolean expressions into one. One or both expressions must be true for the overall expression to be true. It is only necessary for one to be true, and it does not matter which one. !NOT The ! operator reverses the truth of a boolean expression. If it is applied to an expression that is true, the operator returns false. If it is applied to an expression that is false, the operator returns true.

17 The && Operator  The logical AND operator (&&) takes two operands that must both be boolean expressions.  The resulting combined expression is true iff (if and only if) both operands are true. Expression 1Expression 2 Expression1 && Expression2 truefalse truefalse true

18 LogicalAND double salary; // Annual salary double yearsOnJob; // Years at current job String input; // To hold string input input = JOptionPane.showInputDialog("Enter your " + "annual salary.") salary = Double.parseDouble(input); input = JOptionPane.showInputDialog( "Enter the number of " +"years at your current job."); yearsOnJob = Double.parseDouble(input);

19 LogicalAND // Determine whether the user qualifies for the loan. if (salary >= 30000 && yearsOnJob >= 2) { JOptionPane.showMessageDialog(null, "You qualify " + "for the loan."); } else { JOptionPane.showMessageDialog(null, "You do not " + "qualify for the loan."); }

20 The || Operator  The logical OR operator (||) takes two operands that must both be boolean expressions.  The resulting combined expression is false iff (if and only if) both operands are false. Expression 1 Expression 2 Expression1 || Expression2 truefalsetrue falsetrue false true

21 LogicalOR double salary; // Annual salary double yearsOnJob; // Years at current job String input; // To hold string input input = JOptionPane.showInputDialog("Enter your " + "annual salary.") salary = Double.parseDouble(input); input = JOptionPane.showInputDialog( "Enter the number of " +"years at your current job."); yearsOnJob = Double.parseDouble(input);

22 LogicalOR // Determine whether the user qualifies for the loan. if (salary >= 30000 || yearsOnJob >= 2) { JOptionPane.showMessageDialog(null, "You qualify " +"for the loan."); } else { JOptionPane.showMessageDialog(null, "You do not " + "qualify for the loan."); }

23 The ! Operator  The ! operator performs a logical NOT operation.  If an expression is true, !expression will be false. if (!(temperature > 100)) System.out.println(“Below the maximum temperature.");  If temperature > 100 evaluates to false, then the output statement will be run. Expression 1!Expression1 truefalse true

24 Short Circuiting  Logical AND and logical OR operations perform short-circuit evaluation of expressions.  Logical AND will evaluate to false as soon as it sees that one of its operands is a false expression.  Logical OR will evaluate to true as soon as it sees that one of its operands is a true expression.

25 Order of Precedence  The ! operator has a higher order of precedence than the && and || operators.  The && and || operators have a lower precedence than relational operators like.  Parenthesis can be used to force the precedence to be changed.

26 Order of Precedence OperatorsDescription 1 (unary negation) ! Unary negation, logical NOT 2* / %Multiplication, Division, Modulus 3+ -Addition, Subtraction 4 = Less-than, Greater-than, Less- than or equal to, Greater-than or equal to 5== !=Is equal to, Is not equal to 6&&Logical AND 7||Logical NOT 8 = += -= *= /= %= Assignment and combined assignment operators.

27 Comparing String Objects  In most cases, you cannot use the relational operators to compare two String objects.  Reference variables contain the address of the object they represent.  Unless the references point to the same object, the relational operators will not return true. StringCompareTo.java

28 StringCompare.java String name1 = "Mark", name2 = "Mark", name3 = "Mary"; // Compare "Mark" and "Mark" if (name1.equals(name2)) { System.out.println(name1 + " and " + name2 + " are the same."); } else { System.out.println(name1 + " and " + name2 + " are the NOT the same."); }

29 StringCompare.java // Compare "Mark" and "Mary" if (name1.equals(name3)) { System.out.println(name1 + " and " + name3 + " are the same."); } else { System.out.println(name1 + " and " + name3 + " are the NOT the same."); }

30 StringCompareTo.java String name1 = "Mary", name2 = "Mark"; // Compare "Mary" and "Mark" if (name1.compareTo(name2) < 0) { System.out.println(name1 + " is less than " + name2); } else if (name1.compareTo(name2) == 0) { System.out.println(name1 + " is equal to " + name2); } else if (name1.compareTo(name2) > 0) { System.out.println(name1 + " is greater than " + name2); }

31 Ignoring Case in String Comparisons  In the String class the equals and compareTo methods are case sensitive.  In order to compare two String objects that might have different case, use: equalsIgnoreCase, or compareToIgnoreCase

32 SecretWord.java if (input.equalsIgnoreCase("PROSPERO")) { System.out.println("Congratulations!” + “You know the“ + “ secret word!"); } else { System.out.println("Sorry, that is NOT” “the " +"secret word!"); }


Download ppt "Chapter 3:Decision Structures.  3.1 The if Statement  3.2 The if-else Statement  3.3 The if-else-if Statement  3.4 Nested if Statements  3.5 Logical."

Similar presentations


Ads by Google