9781111530532 ppt ch04
TRANSCRIPT
- 1. Java Programming: From Problem Analysis to Program Design, 5e Chapter 4 Control Structures I: Selection
2. Chapter Objectives
- Learn about control structures
- Examine relational and logical operators
- Explore how to form and evaluate logical (Boolean) expressions
- Learn how to use the selection control structuresif ,if else , andswitchin a program
Java Programming: From Problem Analysis to Program Design, 5e 3. Control Structures
- Three methods of processing a program
-
- In sequence
-
- Branching
-
- Looping
- Branch:altering the flow of program execution by making a selection or choice
- Loop: altering the flow of program execution by repetition of statement(s)
Java Programming: From Problem Analysis to Program Design, 5e 4. Flow of Execution Java Programming: From Problem Analysis to Program Design, 5e 5. Relational Operators
- Relational operator
-
- Allows you to make comparisons in a program
-
- Binary operator
- Condition is represented by a logical expression in Java
- Logical expression: expression that has a value of either true or false
Java Programming: From Problem Analysis to Program Design, 5e 6. Relational Operators in Java Java Programming: From Problem Analysis to Program Design, 5e 7. Relational Operators and Primitive Data Types
- Can be used with integral and floating-point data types
- Can be used with the char data type
- Unicode collating sequence
Java Programming: From Problem Analysis to Program Design, 5e 8. Java Programming: From Problem Analysis to Program Design, 5e 9. Java Programming: From Problem Analysis to Program Design, 5e 10. Relational Operators and the Unicode Collating Sequence Java Programming: From Problem Analysis to Program Design, 5e 11. Logical (Boolean) Operators Java Programming: From Problem Analysis to Program Design, 5e 12. Logical (Boolean) Operators (continued) Java Programming: From Problem Analysis to Program Design, 5e 13. Logical (Boolean) Operators (continued) Java Programming: From Problem Analysis to Program Design, 5e 14. Logical (Boolean) Operators (continued) Java Programming: From Problem Analysis to Program Design, 5e 15. Precedence of Operators Java Programming: From Problem Analysis to Program Design, 5e 16. Precedence of Operators (continued) Java Programming: From Problem Analysis to Program Design, 5e 17. Java Programming: From Problem Analysis to Program Design, 5e 18. Java Programming: From Problem Analysis to Program Design, 5e 19. Java Programming: From Problem Analysis to Program Design, 5e 20. Selection
- One-way selection
- Two-way selection
- Compound (block of) statements
- Multiple selections (nested if)
- Conditional operator
- switchstructures
Java Programming: From Problem Analysis to Program Design, 5e 21. One-Way Selection
- Syntax
- if(expression)
- statement
- Expression referred to as decision maker
- Statement referred to as action statement
Java Programming: From Problem Analysis to Program Design, 5e 22. One-Way Selection (continued) Java Programming: From Problem Analysis to Program Design, 5e 23.
- Example 4-7
- //Program to determine the absolute value of an integer
- importjavax.swing.JOptionPane;
- public classAbsoluteValue
- {
- public static voidmain(String[] args)
- {
- intnumber;
- inttemp;
- String numString;
- numString =
- JOptionPane.showInputDialog
- ("Enter an integer:");//Line 1
- number = Integer.parseInt(numString);//Line 2
- temp = number;//Line 3
One-Way Selection (continued) Java Programming: From Problem Analysis to Program Design, 5e 24.
- if(number < 0)//Line 4
- number = -number;//Line 5
- JOptionPane.showMessageDialog(null,
- "The absolute value of " + temp
- + " is " + number,
- "Absolute Value",
- JOptionPane.INFORMATION_MESSAGE); //Line 6
- System.exit(0);
- }
One-Way Selection (continued) Java Programming: From Problem Analysis to Program Design, 5e 25.
- if(number < 0)//Line 4
- number = -number;//Line 5
- JOptionPane.showMessageDialog(null,
- "The absolute value of " + temp
- + " is " + number,
- "Absolute Value",
- JOptionPane.INFORMATION_MESSAGE); //Line 6
- System.exit(0);
- }
Java Programming: From Problem Analysis to Program Design, 5e 26. Two-Way Selection
- Syntax
- if(expression)
- statement1
- else
- statement2
- elsestatement must be paired with anif
Java Programming: From Problem Analysis to Program Design, 5e 27. Two-Way Selection (continued) Java Programming: From Problem Analysis to Program Design, 5e 28. Two-Way Selection (continued) Java Programming: From Problem Analysis to Program Design, 5e Example 4-10 if(hours > 40.0) wages = 40.0 * rate +1.5 * rate * (hours - 40.0);else wages = hours * rate; 29. Two-Way Selection (continued) Java Programming: From Problem Analysis to Program Design, 5e
- Example 4-11
- if(hours > 40.0);//Line 1
- wages = 40.0 * rate +
- 1.5 * rate * (hours - 40.0);//Line 2
- else //Line 3
- wages = hours * rate;//Line 4
- Because a semicolon follows the closing parenthesis of theifstatement (Line 1), theelsestatement stands alone
- The semicolon at the end of theifstatement (see Line 1) ends theifstatement, so the statement at Line 2 separates the else clause from theifstatement; that is,elseis by itself
- Since there is no separateelsestatement in Java, this code generates a syntax error
30. Two-Way Selection (continued) Java Programming: From Problem Analysis to Program Design, 5e 31. Compound (Block of) Statements
- Syntax
Java Programming: From Problem Analysis to Program Design, 5e 32. Compound (Block of) Statements (continued)
- if(age > 18)
- {
- System.out.println("Eligible to vote.");
- System.out.println("No longer a minor.");
- }
- else
- {
- System.out.println("Not eligible to vote.");
- System.out.println("Still a minor.");
- }
Java Programming: From Problem Analysis to Program Design, 5e 33. Multiple Selection: Nested if
- Syntax
- if(expression1)
- statement1
- else if(expression2)
- statement2
- else
- statement3
- Else associated with most recent incomplete if
- Multiple if statements can be used in place of ifelse statements
- May take longer to evaluate
Java Programming: From Problem Analysis to Program Design, 5e 34. Multiple Selection: Nested if (continued) Java Programming: From Problem Analysis to Program Design, 5e 35. Multiple Selection: Nested if (continued) Java Programming: From Problem Analysis to Program Design, 5e To avoid excessive indentation, the code in Example 4-15 can be rewritten as follows: 36. Multiple Selection: Nested if (continued) Java Programming: From Problem Analysis to Program Design, 5e 37. Multiple Selection: Nested if (continued) Java Programming: From Problem Analysis to Program Design, 5e 38. Java Programming: From Problem Analysis to Program Design, 5e 39. Java Programming: From Problem Analysis to Program Design, 5e 40.
- Definition:a process in which the computer evaluates a logical expression from left to right and stops as soon as the value of the expression is known
Short-Circuit Evaluation Java Programming: From Problem Analysis to Program Design, 5e 41. Short-Circuit Evaluation (continued) Java Programming: From Problem Analysis to Program Design, 5e 42. Java Programming: From Problem Analysis to Program Design, 5e 43. Java Programming: From Problem Analysis to Program Design, 5e 44. Java Programming: From Problem Analysis to Program Design, 5e 45. Java Programming: From Problem Analysis to Program Design, 5e
- The preceding program and its output show that you should be careful when comparing floating-point numbers for equality.
- One way to check whether two floating-point numbers are equal is to check whether the absolute value of their difference is less than a certain tolerance. For example, suppose the tolerance is.000001 .
- Thenxandyare equal if the absolute value of(x y)is less than0.000001 . To find the absolute value, you can use the functionMath.absof theclass Math , as shown in the program.
- Therefore, the expressionMath.abs(x y) < 0.000001determines whether the absolute value of (x y) is less than 0.000001.
46. Conditional (? :) Operator
- Ternary operator
- Syntax
- expression1 ?expression2:expression3
- Ifexpression1 =true , then the result of the condition is expression 2; otherwise, the result of the condition is expression 3
Java Programming: From Problem Analysis to Program Design, 5e 47. Java Programming: From Problem Analysis to Program Design, 5e 48. Java Programming: From Problem Analysis to Program Design, 5e 49. Java Programming: From Problem Analysis to Program Design, 5e 50. Java Programming: From Problem Analysis to Program Design, 5e 51. switchStructures Java Programming: From Problem Analysis to Program Design, 5e 52. switchStructures (continued) Java Programming: From Problem Analysis to Program Design, 5e
- In Java,switch ,case ,break , anddefaultare reserved words
- In aswitchstructure, the expression is evaluated first
- The value of the expression is then used to perform the actions specified in the statements that follow the reserved wordcase
- The expression is usually an identifier
- The value of the identifier or the expression can be only of typeint ,byte ,short , orchar
53. switchStructures (continued) Java Programming: From Problem Analysis to Program Design, 5e
- The expression is sometimes called the selector; its value determines which statements are selected for execution
- A particularcasevalue must appear only once
- One or more statements may follow acaselabel, so you do not need to use braces to turn multiple statements into a single compound statement
54. switchStructures (continued) Java Programming: From Problem Analysis to Program Design, 5e
- Thebreakstatement may or may not appear after eachstatements1 ,statements2 , ...,statementsn
- Aswitchstructure may or may not have thedefaultlabel
55. switchStructures (continued) Java Programming: From Problem Analysis to Program Design, 5e 56. switchStructures (continued) Java Programming: From Problem Analysis to Program Design, 5e 57.
- Example 4-20
- switch(grade)
- {
- case'A':
- System.out.println("The grade is A.");
- break ;
- case'B':
- System.out.println("The grade is B.");
- break ;
- case'C':
- System.out.println("The grade is C.");
- break ;
switchStructures (continued) Java Programming: From Problem Analysis to Program Design, 5e 58.
- case'D':
- System.out.println("The grade is D.");
- break ;
- case'F':
- System.out.println("The grade is F.");
- break ;
- default :
- System.out.println("The grade is invalid.");
- }
switchStructures (continued) Java Programming: From Problem Analysis to Program Design, 5e 59. Java Programming: From Problem Analysis to Program Design, 5e 60. Java Programming: From Problem Analysis to Program Design, 5e 61. Java Programming: From Problem Analysis to Program Design, 5e 62. Java Programming: From Problem Analysis to Program Design, 5e To output results correctly, theswitchstructure must include abreakstatement after eachprintlnstatement, except the lastprintlnstatement. 63. Programming Example:Cable Company Billing
- Input: customers account number, customer code, number of premium channels to which customer subscribes, number of basic service connections (in case of business customers)
- Output: customers account number and the billing amount
Java Programming: From Problem Analysis to Program Design, 5e 64. Programming Example:Cable Company Billing (continued)
- Solution
-
- Prompt user for information
-
- Use switch statements based on customers type
-
- Use an if statement nested within a switch statement to determine amount due by each customer
Java Programming: From Problem Analysis to Program Design, 5e 65. Comparing Strings
- class String
-
- MethodcompareTo
-
- Methodequals
- Given stringstr1andstr2
Java Programming: From Problem Analysis to Program Design, 5e 66. Comparing Strings (continued)
- String str1 = "Hello";
- String str2 = "Hi";
- String str3 = "Air";
- String str4 = "Bill";
- String str5 = "Bigger";
Java Programming: From Problem Analysis to Program Design, 5e 67. Comparing Strings (continued) Java Programming: From Problem Analysis to Program Design, 5e 68. Comparing Strings (continued) Java Programming: From Problem Analysis to Program Design, 5e 69. Chapter Summary
- Control structures are used to process programs
- Logical expressions and order of precedence of operators are used in expressions
- If statements
- if elsestatements
- switchstructures
- Proper syntax for using control statements
- Compare strings
Java Programming: From Problem Analysis to Program Design, 5e