9781111530532 ppt ch04

Download 9781111530532 ppt ch04

If you can't read please download the document

Upload: terry-yoast

Post on 20-May-2015

308 views

Category:

Education


2 download

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