Presentation is loading. Please wait.

Presentation is loading. Please wait.

Chapter 5 Control Statements: Loops 2

Similar presentations


Presentation on theme: "Chapter 5 Control Statements: Loops 2"— Presentation transcript:

1 Chapter 5 Control Statements: Loops 2
Java™ How to Program, 10/e © Copyright by Pearson Education, Inc. All Rights Reserved.

2 Contents for repetition statement do…while repetition statement
break statement continue statement Logical Operators (revisited) Nested control statements © Copyright by Pearson Education, Inc. All Rights Reserved.

3 5.2 Essentials of Counter-Controlled Repetition
Counter-controlled repetition requires a control variable (or loop counter) the initial value of the control variable the increment by which the control variable is modified each time through the loop (also known as each iteration of the loop) the loop-continuation condition that determines if looping should continue. © Copyright by Pearson Education, Inc. All Rights Reserved.

4 5.2 Essentials of Counter-Controlled Repetition
Consider the following algorithm (algorithm 1) Initialize counter to 1. While counter <= 10 Print counter Increment counter Print new line © Copyright by Pearson Education, Inc. All Rights Reserved.

5 Draw the flow chart of algorithm 1
In-Class Exercise Draw the flow chart of algorithm 1 © Copyright by Pearson Education, Inc. All Rights Reserved.

6 Flow chart (1) Print “\n” Print counter Start counter = 1
false Print “\n” true End Print counter counter ++ Flow chart (1)

7 © Copyright 1992-2015 by Pearson Education, Inc. All Rights Reserved.

8 5.2 Essentials of Counter-Controlled Repetition (Cont.)
In Fig. 5.1, the elements of counter-controlled repetition are defined in lines 8, 10 and 13. Line 8 declares the control variable (counter) as an int, reserves space for it in memory and sets its initial value to 1. The loop-continuation condition in the while (line 10) tests whether the value of the control variable is less than or equal to 10 (the final value for which the condition is true). Line 13 increments the control variable by 1 for each iteration of the loop. © Copyright by Pearson Education, Inc. All Rights Reserved.

9 5.3 for Repetition Statement
Specifies the counter-controlled-repetition details in a single line of code. Figure 5.2 reimplements the application of Fig. 5.1 using for. © Copyright by Pearson Education, Inc. All Rights Reserved.

10 © Copyright 1992-2015 by Pearson Education, Inc. All Rights Reserved.

11 5.3 for Repetition Statement (Cont.)
When the for statement begins executing, the control variable is declared and initialized. Next, the program checks the loop-continuation condition, which is between the two required semicolons. If the condition initially is true, the body statement executes. After executing the loop’s body, the program increments the control variable in the increment expression, which appears to the right of the second semicolon. Then the loop-continuation test is performed again to determine whether the program should continue with the next iteration of the loop. A common logic error with counter-controlled repetition is an off-by-one error. © Copyright by Pearson Education, Inc. All Rights Reserved.

12 5.3 for Repetition Statement (Cont.)
The general format of the for statement is for (initialization; loopContinuationCondition; increment) statement the initialization expression names the loop’s control variable and optionally provides its initial value loopContinuationCondition determines whether the loop should continue executing increment modifies the control variable’s value, so that the loop-continuation condition eventually becomes false. The two semicolons in the for header are required. © Copyright by Pearson Education, Inc. All Rights Reserved.

13 5.3 for Repetition Statement (Cont.)
The for statement often can be represented with an equivalent while statement as follows: initialization; while (loopContinuationCondition) { statement increment; } Typically, for statements are used for counter-controlled repetition and while statements for sentinel-controlled repetition. If the initialization expression in the for header declares the control variable, the control variable can be used only in that for statement. © Copyright by Pearson Education, Inc. All Rights Reserved.

14 5.3 for Repetition Statement (Cont.)
A variable’s scope defines where it can be used in a program. A local variable can be used only in the method that declares it and only from the point of declaration through the end of the method. © Copyright by Pearson Education, Inc. All Rights Reserved.

15 5.3 for Repetition Statement (Cont.)
All three expressions in a for header are optional. If the loopContinuationCondition is omitted, the condition is always true, thus creating an infinite loop. You might omit the initialization expression if the program initializes the control variable before the loop. You might omit the increment if the program calculates it with statements in the loop’s body or if no increment is needed. The increment expression in a for acts as if it were a standalone statement at the end of the for’s body, so counter = counter + 1 counter += 1 ++counter counter++ are equivalent increment expressions in a for statement. © Copyright by Pearson Education, Inc. All Rights Reserved.

16 5.3 for Repetition Statement (Cont.)
The initialization, loop-continuation condition and increment can contain arithmetic expressions. For example, assume that x = 2 and y = 10. If x and y are not modified in the body of the loop, the statement for (int j = x; j <= 4 * x * y; j += y / x) is equivalent to the statement for (int j = 2; j <= 80; j += 5) The increment of a for statement may be negative, in which case it’s a decrement, and the loop counts downward. © Copyright by Pearson Education, Inc. All Rights Reserved.

17 5.4 Examples Using the for Statement
a)Vary the control variable from 1 to 100 in increments of 1. for (int i = 1; i <= 100; i++) b)Vary the control variable from 100 to 1 in decrements of 1. for (int i = 100; i >= 1; i--) c)Vary the control variable from 7 to 77 in increments of 7. for (int i = 7; i <= 77; i += 7) © Copyright by Pearson Education, Inc. All Rights Reserved.

18 5.4 Examples Using the for Statement (Cont.)
d)Vary the control variable from 20 to 2 in decrements of 2. for (int i = 20; i >= 2; i -= 2) e)Vary the control variable over the values 2, 5, 8, 11, 14, 17, 20. for (int i = 2; i <= 20; i += 3) f)Vary the control variable over the values 99, 88, 77, 66, 55, 44, 33, 22, 11, 0. for (int i = 99; i >= 0; i -= 11) © Copyright by Pearson Education, Inc. All Rights Reserved.

19 Draw the flow charts of examples b and d above
In-Class Exercise Draw the flow charts of examples b and d above © Copyright by Pearson Education, Inc. All Rights Reserved.

20 © Copyright 1992-2015 by Pearson Education, Inc. All Rights Reserved.

21 5.4 Examples Using the for Statement (Cont.)
The initialization and increment expressions can be comma-separated lists that enable you to use multiple initialization expressions or multiple increment expressions. Although this is discouraged, the body of the for statement in lines 11–12 of Fig. 5.5 could be merged into the increment portion of the for header by using a comma as follows: for (int number = 2; number <= 20; total += number, number += 2) ; // empty statement © Copyright by Pearson Education, Inc. All Rights Reserved.

22 5.4 Examples Using the for Statement (Cont.)
Compound interest application A person invests $1,000 in a savings account yielding 5% interest. Assuming that all the interest is left on deposit, calculate and print the amount of money in the account at the end of each year for 10 years. Use the following formula to determine the amounts: a = p (1 + r)n where p is the original amount invested (i.e., the principal) r is the annual interest rate (e.g., use 0.05 for 5%) n is the number of years a is the amount on deposit at the end of the nth year.

23 amount = principal (1+rate)year
Start principal = rate = 0.05 year <= 10 false End true amount = principal (1+rate)year Print year, amount © Copyright by Pearson Education, Inc. All Rights Reserved.

24 5.4 Examples Using the for Statement (Cont.)
The solution to this problem (Fig. 5.6) involves a loop that performs the indicated calculation for each of the 10 years the money remains on deposit. Java treats floating-point constants like and as type double. Java treats whole-number constants like 7 and -22 as type int. © Copyright by Pearson Education, Inc. All Rights Reserved.

25 © Copyright 1992-2015 by Pearson Education, Inc. All Rights Reserved.

26 © Copyright 1992-2015 by Pearson Education, Inc. All Rights Reserved.

27 5.4 Examples Using the for Statement (Cont.)
In the format specifier %20s, the integer 20 between the % and the conversion character s indicates that the value output should be displayed with a field width of 20—that is, printf displays the value with at least 20 character positions. If the value to be output is less than 20 character positions wide, the value is right justified in the field by default. If the year value to be output were more thanhas more characters than the field width, the field width would be extended to the right to accommodate the entire value. To indicate that values should be output left justified, precede the field width with the minus sign (–) formatting flag (e.g., %-20s). © Copyright by Pearson Education, Inc. All Rights Reserved.

28 5.4 Examples Using the for Statement (Cont.)
Classes provide methods that perform common tasks on objects. Most methods must be called on a specific object. Someclasses also provide methods that perform common tasks and do not require you to first create objects of those classes. These are called static methods. Java does not include an exponentiation operator—Math class static method pow can be used for raising a value to a power. You can call a static method by specifying the class name followed by a dot (.) and the method name, as in ClassName.methodName(arguments) Math.pow(x, y) calculates the value of x raised to the yth power. The method receives two double arguments and returns a double value. © Copyright by Pearson Education, Inc. All Rights Reserved.

29 5.4 Examples Using the for Statement (Cont.)
In the format specifier %,20.2f, the comma (,) formatting flag indicates that the floating-point value should be output with a grouping separator. Separator is specific to the user’s locale (i.e., country). In the United States, the number will be output using commas to separate every three digits and a decimal point to separate the fractional part of the number, as in 1, The number 20 in the format specification indicates that the value should be output right justified in a field width of 20 characters. The .2 specifies the formatted number’s precision—in this case, the number is rounded to the nearest hundredth and output with two digits to the right of the decimal point. © Copyright by Pearson Education, Inc. All Rights Reserved.

30 5.5 do…while Repetition Statement
The do…while repetition statement is similar to the while statement. In the while, the program tests the loop-continuation condition at the beginning of the loop, before executing the loop’s body; if the condition is false, the body never executes. The do…while statement tests the loop-continuation condition after executing the loop’s body; therefore, the body always executes at least once. When a do…while statement terminates, execution continues with the next statement in sequence. © Copyright by Pearson Education, Inc. All Rights Reserved.

31 Flow chart (2) Print counter Print “\n” Start counter = 1 counter ++
false Print “\n” true End Flow chart (2)

32 © Copyright 1992-2015 by Pearson Education, Inc. All Rights Reserved.

33 5.5 do…while Repetition Statement (Cont.)
Figure 5.8 contains the UML activity diagram for the do…while statement. The diagram makes it clear that the loop-continuation condition is not evaluated until after the loop performs the action state at least once. © Copyright by Pearson Education, Inc. All Rights Reserved.

34 5.5 do…while Repetition Statement (Cont.)
Braces are not required in the do…while repetition statement if there’s only one statement in the body. Most programmers include the braces, to avoid confusion between the while and do…while statements. Thus, the do…while statement with one body statement is usually written as follows: do { statement } while (condition); © Copyright by Pearson Education, Inc. All Rights Reserved.

35 5.8 break and continue Statements
The break statement, when executed in a while, for, do…while or switch, causes immediate exit from that statement. Execution continues with the first statement after the control statement. Common uses of the break statement are to escape early from a loop or to skip the remainder of a switch. © Copyright by Pearson Education, Inc. All Rights Reserved.

36 © Copyright 1992-2015 by Pearson Education, Inc. All Rights Reserved.

37 5.8 break and continue Statements (Cont.)
The continue statement, when executed in a while, for or do…while, skips the remaining statements in the loop body and proceeds with the next iteration of the loop. In while and do…while statements, the program evaluates the loop-continuation test immediately after the continue statement executes. In a for statement, the increment expression executes, then the program evaluates the loop-continuation test. © Copyright by Pearson Education, Inc. All Rights Reserved.

38 © Copyright 1992-2015 by Pearson Education, Inc. All Rights Reserved.

39 5.9  Logical Operators Java’s logical operators enable you to form more complex conditions by combining simple conditions. The logical operators are && (conditional AND) || (conditional OR) & (boolean logical AND) | (boolean logical inclusive OR) ^ (boolean logical exclusive OR) ! (logical NOT). [Note: The &, | and ^ operators are also bitwise operators when they are applied to integral operands.] © Copyright by Pearson Education, Inc. All Rights Reserved.

40 5.9 Logical Operators (Cont.)
The & (conditional AND) operator ensures that two conditions are both true before choosing a certain path of execution. The table in Fig. 5.15 summarizes the && operator. The table shows all four possible combinations of false and true values for expression1 and expression2. Such tables are called truth tables. Java evaluates to false or true all expressions that include relational operators, equality operators or logical operators. © Copyright by Pearson Education, Inc. All Rights Reserved.

41 © Copyright 1992-2015 by Pearson Education, Inc. All Rights Reserved.

42 5.9 Logical Operators (Cont.)
The || (conditional OR) operator ensures that either or both of two conditions are true before choosing a certain path of execution. Figure 5.16 is a truth table for operator conditional OR (||). Operator && has a higher precedence than operator ||. Both operators associate from left to right. © Copyright by Pearson Education, Inc. All Rights Reserved.

43 © Copyright 1992-2015 by Pearson Education, Inc. All Rights Reserved.

44 5.9 Logical Operators (Cont.)
The parts of an expression containing && or || operators are evaluated only until it’s known whether the condition is true or false. T This feature of conditional AND and conditional OR expressions is called short-circuit evaluation. © Copyright by Pearson Education, Inc. All Rights Reserved.

45 5.9 Logical Operators (Cont.)
The boolean logical AND (&) and boolean logical inclusive OR (|) operators are identical to the && and || operators, except that the & and | operators always evaluate both of their operands (i.e., they do not perform short-circuit evaluation). This is useful if the right operand has a required side effect—a modification of a variable’s value. © Copyright by Pearson Education, Inc. All Rights Reserved.

46 5.9 Logical Operators (Cont.)
A simple condition containing the boolean logical exclusive OR (^) operator is true if and only if one of its operands is true and the other is false. If both are true or both are false, the entire condition is false. Figure 5.17 is a truth table for the boolean logical exclusive OR operator (^). This operator is guaranteed to evaluate both of its operands. © Copyright by Pearson Education, Inc. All Rights Reserved.

47 © Copyright 1992-2015 by Pearson Education, Inc. All Rights Reserved.

48 5.9 Logical Operators (Cont.)
The ! (logical NOT, also called logical negation or logical complement) operator “reverses” the meaning of a condition. The logical negation operator is a unary operator that has only one condition as an operand. The logical negation operator is placed before a condition to choose a path of execution if the original condition (without the logical negation operator) is false. In most cases, you can avoid using logical negation by expressing the condition differently with an appropriate relational or equality operator. Figure 5.18 is a truth table for the logical negation operator. © Copyright by Pearson Education, Inc. All Rights Reserved.

49 © Copyright 1992-2015 by Pearson Education, Inc. All Rights Reserved.

50 5.9 Logical Operators (Cont.)
Figure 5.19 produces the truth tables discussed in this section. The %b format specifier displays the word “true” or the word “false” based on a boolean expression’s value. © Copyright by Pearson Education, Inc. All Rights Reserved.

51 © Copyright 1992-2015 by Pearson Education, Inc. All Rights Reserved.

52 © Copyright 1992-2015 by Pearson Education, Inc. All Rights Reserved.

53 © Copyright 1992-2015 by Pearson Education, Inc. All Rights Reserved.

54 © Copyright 1992-2015 by Pearson Education, Inc. All Rights Reserved.

55 © Copyright 1992-2015 by Pearson Education, Inc. All Rights Reserved.

56 4.11 Formulating Algorithms: Nested Control Statements
This case study examines nesting one control statement within another. A college offers a course that prepares students for the state licensing exam for real-estate brokers. Last year, ten of the students who completed this course took the exam. The college wants to know how well its students did on the exam. You’ve been asked to write a program to summarize the results. You’ve been given a list of these 10 students. Next to each name is written a 1 if the student passed the exam or a 2 if the student failed. © Copyright by Pearson Education, Inc. All Rights Reserved.

57 4.11 Formulating Algorithms: Nested Control Statements (Cont.)
This case study examines nesting one control statement within another. Your program should analyze the results of the exam as follows: Input each test result (i.e., a 1 or a 2). Display the message “Enter result” on the screen each time the program requests another test result. Count the number of test results of each type. Display a summary of the test results, indicating the number of students who passed and the number who failed. If more than eight students passed the exam, print “Bonus to instructor!” © Copyright by Pearson Education, Inc. All Rights Reserved.

58 © Copyright 1992-2015 by Pearson Education, Inc. All Rights Reserved.

59 Draw the flow charts of the examination result problem
In-Class Exercise Draw the flow charts of the examination result problem © Copyright by Pearson Education, Inc. All Rights Reserved.

60 © Copyright 1992-2015 by Pearson Education, Inc. All Rights Reserved.

61 © Copyright 1992-2015 by Pearson Education, Inc. All Rights Reserved.

62 © Copyright 1992-2015 by Pearson Education, Inc. All Rights Reserved.

63 © Copyright 1992-2015 by Pearson Education, Inc. All Rights Reserved.

64 Chapter 5: Read In Version 9: 5.1, 5.2, 5.3, 5.4, 5.5, 5.7, 5.8 Or
Or (4.11 in version 10) © Copyright by Pearson Education, Inc. All Rights Reserved.


Download ppt "Chapter 5 Control Statements: Loops 2"

Similar presentations


Ads by Google