Presentation is loading. Please wait.

Presentation is loading. Please wait.

Control Structures II: Repetition.  Learn about repetition (looping) control structures  Explore how to construct and use count-controlled, sentinel-controlled,

Similar presentations


Presentation on theme: "Control Structures II: Repetition.  Learn about repetition (looping) control structures  Explore how to construct and use count-controlled, sentinel-controlled,"— Presentation transcript:

1 Control Structures II: Repetition

2  Learn about repetition (looping) control structures  Explore how to construct and use count-controlled, sentinel-controlled, flag-controlled, and EOF-controlled repetition structures  Examine break and continue statements  Discover how to form and use nested control structures Java Programming: From Problem Analysis to Program Design, 3e 2

3  There are many situations in which the same statements need to be executed several times  Example  Formulas used to find average grades for students in a class Java Programming: From Problem Analysis to Program Design, 3e 3

4  Syntax while (expression) statement  Expression is always true in an infinite loop  Statements must change value of expression to false Java Programming: From Problem Analysis to Program Design, 3e 4

5 5

6 Example 5-1 i = 0; //Line 1 while (i <= 20) //Line 2 { System.out.print(i + " "); //Line 3 i = i + 5; //Line 4 } System.out.println(); //Line 5 Output: 0 5 10 15 20 Java Programming: From Problem Analysis to Program Design, 3e 6

7  Typically, while loops are written in the following form: Java Programming: From Problem Analysis to Program Design, 3e 7

8  Used when exact number of data or entry pieces is known  General form: Java Programming: From Problem Analysis to Program Design, 3e 8

9  Used when exact number of entry pieces is unknown but last entry (special/sentinel value) is known  General form: Java Programming: From Problem Analysis to Program Design, 3e 9

10  Boolean value used to control loop  General form: Java Programming: From Problem Analysis to Program Design, 3e 10

11  Used when input is from files  Sentinel value is not always appropriate  In an EOF-controlled while loop that uses the Scanner object console to input data, console acts at the loop control variable  The method hasNext, of the class Scanner, returns true if there is an input in the input stream; otherwise it returns false Java Programming: From Problem Analysis to Program Design, 3e 11

12  The expression console.hasNext() evaluates to true if there is an input in the input stream; otherwise it returns false  Expressions such as console.nextInt() act as the loop condition  A general form of the EOF-controlled while loop that uses the Scanner object console to input data is of the form: Java Programming: From Problem Analysis to Program Design, 3e 12

13  Suppose that inFile is a Scanner object initialized to the input file; in this case, the EOF- controlled while loop takes the following form: Java Programming: From Problem Analysis to Program Design, 3e 13

14  Input file: customer’s account number, account balance at beginning of month, transaction type (withdrawal, deposit, interest), transaction amount  Output: account number, beginning balance, ending balance, total interest paid, total amount deposited, number of deposits, total amount withdrawn, number of withdrawals Java Programming: From Problem Analysis to Program Design, 3e 14

15  Solution  Read data  EOF-controlled loop  switch structure of transaction types  Determine action (add to balance or subtract from balance depending on transaction type) Java Programming: From Problem Analysis to Program Design, 3e 15

16  Fibonacci formula for any Fibonacci sequence: a n = a n-1 + a n-2  Input: first two Fibonacci numbers in sequence, position in sequence of desired Fibonacci number (n)  int previous1 = Fibonacci number 1  int previous2 = Fibonacci number 2  int nthFibonacci = position of nth Fibonacci number  Output: nth Fibonacci number Java Programming: From Problem Analysis to Program Design, 3e 16

17 if (nthFibonacci == 1) current = previous1; else if (nthFibonacci == 2) current = previous2; else { counter = 3; while (counter <= nthFibonacci) { current = previous2 + previous1; previous1 = previous2; previous2 = current; counter++; }  Final result found in last value of current Java Programming: From Problem Analysis to Program Design, 3e 17

18  Specialized form of while loop  Simplifies the writing of count-controlled loops  Syntax: for (initial expression; logical expression; update expression) statement Java Programming: From Problem Analysis to Program Design, 3e 18

19  Execution  Initial statement executes  The loop condition evaluated  If loop condition evaluates to true, execute for loop statement and execute update statement  Repeat until loop condition is false Java Programming: From Problem Analysis to Program Design, 3e 19

20 Java Programming: From Problem Analysis to Program Design, 3e 20

21 Example 5-8 The following for loop prints the first 10 nonnegative integers: for (i = 0; i < 10; i++) System.out.print(i + " "); System.out.println(); Java Programming: From Problem Analysis to Program Design, 3e 21

22 Example 5-9 1. The following for loop outputs the word Hello and a star (on separate lines) five times: for (i = 1; i <= 5; i++) { System.out.println("Hello"); System.out.println("*"); } 2. for (i = 1; i <= 5; i++) System.out.println("Hello"); System.out.println("*"); This loop outputs the word Hello five times and the star only once Java Programming: From Problem Analysis to Program Design, 3e 22

23  Does not execute if initial condition is false  Update expression changes value of loop control variable, eventually making it false  If logical expression is always true, result is an infinite loop  Infinite loop can be specified by omitting all three control statements Java Programming: From Problem Analysis to Program Design, 3e 23

24  If logical expression is omitted, it is assumed to be true  for statement ending in semicolon is empty Java Programming: From Problem Analysis to Program Design, 3e 24

25  Input: N integers (positive, negative, and zeros) int N = 20; //N easily modified  Output: number of 0 s, number of even integers, number of odd integers Java Programming: From Problem Analysis to Program Design, 3e 25

26 for (counter = 1; counter <= N; counter++) { number = console.nextInt(); System.out.print(number + " "); switch (number % 2) { case 0: evens++; if (number == 0) zeros++; break; case 1: case -1: odds++; } //end switch } //end for loop Java Programming: From Problem Analysis to Program Design, 3e 26

27  Syntax:  Statements executed first, then logical expression evaluated  Statement(s) executed at least once then continued if logical expression is true Java Programming: From Problem Analysis to Program Design, 3e 27

28 Java Programming: From Problem Analysis to Program Design, 3e 28

29  Used to exit early from a loop  Used to skip remainder of switch structure  Can be placed within if statement of a loop  If condition is met, loop exited immediately Java Programming: From Problem Analysis to Program Design, 3e 29

30  Used in while, for, and do... while structures  When executed in a loop, the remaining statements in the loop are skipped; proceeds with the next iteration of the loop  When executed in a while / do … while structure, expression evaluated immediately after continue statement  In a for structure, the update expression is executed after the continue statement; then the loop condition executes Java Programming: From Problem Analysis to Program Design, 3e 30

31  Provides new power, subtlety, and complexity  if, if … else, and switch structures can be placed within while loops  for loops can be found within other for loops Java Programming: From Problem Analysis to Program Design, 3e 31

32 for (int i = 1; i <= 5; i++) { for (int j = 1; j <= i; j++) System.out.print(" *"); System.out.println(); }  Output : * ** *** **** ***** Java Programming: From Problem Analysis to Program Design, 3e 32

33  Looping Mechanisms  Counter-controlled while loop  Sentinel-controlled while loop  Flag-controlled while loop  EOF-controlled while loop  for loop  do … while loop  break statements  continue statements  Nested control structures Java Programming: From Problem Analysis to Program Design, 3e 33


Download ppt "Control Structures II: Repetition.  Learn about repetition (looping) control structures  Explore how to construct and use count-controlled, sentinel-controlled,"

Similar presentations


Ads by Google