Chapter 4 control structures ii
Download
1 / 40

Chapter 4: Control Structures II - PowerPoint PPT Presentation


  • 183 Views
  • Uploaded on

Chapter 4: Control Structures II. Chapter Objectives. Learn about repetition (looping) control structures. Explore how to construct and use counter-controlled, sentinel-controlled, and flag-controlled structures. Examine break and continue statements.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Chapter 4: Control Structures II' - arleen


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

Chapter objectives
Chapter Objectives

  • Learn about repetition (looping) control structures.

  • Explore how to construct and use counter-controlled, sentinel-controlled, and flag-controlled structures.

  • Examine break and continue statements.

  • Discover how to form and use nested control structures.


Why is repetition needed
Why is Repetition Needed?

  • 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.


Repetition
Repetition

  • Java has three repetition, or looping, structures that let you repeat statements over and over again until certain conditions are met:

    • while

    • for

    • do…while


The while looping repetition structure
The while Looping (Repetition) Structure

  • Syntax:

    while (expression)

    statement

  • Statements must change value of expression to false.

  • A loop that continues to execute endlessly is called an infinite loop (expression is always true).


The while looping repetition structure1
The while Looping (Repetition) Structure

Example 5-1

i = 0;

while (i <= 20)

{

System.out.print(i + " ");

i = i + 5;

}

System.out.println();

Output

0 5 10 15 20


The while looping repetition structure2
The while Looping (Repetition) Structure

Typically, while loops are written in the following form:

//initialize the loop control variable(s)

while (expression) //expression tests the LCV

{

.

.

.

//update the loop control variable(s)

.

.

.

}


Counter controlled while loop
Counter-Controlled while Loop

  • Used when exact number of data or entry pieces is known.

  • General form:

    int N = //value input by user or specified

    //in program

    int counter = 0;

    while (counter < N)

    {

    .

    .

    .

    counter++;

    .

    .

    }


Counter controlled while loop example 5 3
Counter-Controlled while Loop-Example 5-3

//Counter-controlled while loopimport java.util.*;publicclass CounterControlledWhileLoop{static Scanner console = new Scanner(System.in);publicstaticvoid main(String[] args) {int limit; //store the number of items//in the listint number; //variable to store the numberint sum; //variable to store the sumint counter; //loop control variable System.out.print("Enter the number of " + "integers in the list: "); limit = console.nextInt();

System.out.println(); sum = 0;

counter = 0; System.out.println("Enter " + limit+ " integers.");


Counter controlled while loop example 5 3 continued
Counter-Controlled while Loop-Example 5-3 (continued)

while (counter < limit) { number = console.nextInt();

sum = sum + number; counter++; } System.out.printf("The sum of the %d " +"numbers = %d%n", limit, sum);

if (counter != 0)

System.out.printf("The average = %d%n",(sum / counter)); else System.out.println("No input.");

}

}

Sample Run:

Enter the number of integers I the list: 4

Enter 4 Integers

2 1 5 8

The sum of the 4 numbers = 16

The average = 4


Sentinel controlled while loop
Sentinel-Controlled while Loop

  • Used when exact number of entry pieces is unknown, but last entry (special/sentinel value) is known.

  • General form:

    Input the first data item into variable;

    while (variable != sentinel)

    {

    .

    .

    .

    input a data item into variable;

    .

    .

    .

    }


Sentinel controlled while loop example 5 4
Sentinel-Controlled while LoopExample 5-4

//Sentinel-controlled while loopimport java.util.*;publicclass SentinelControlledWhileLoop{static Scanner console = new Scanner(System.in);staticfinalint SENTINEL = -999;publicstaticvoid main (String[] args) {int number; //variable to store the numberint sum = 0; //variable to store the sumint count = 0; //variable to store the total//numbers read System.out.println("Enter positive integers " + "ending with " + SENTINEL);


Sentinel controlled while loop example 5 4 continued
Sentinel-Controlled while LoopExample 5-4 (continued)

number = console.nextInt(); while (number != SENTINEL)

{ sum = sum + number; count++;

number = console.nextInt();

}

System.out.printf("The sum of the %d " +"numbers = %d%n", count, sum);if (count != 0) System.out.printf("The average = %d%n",(sum / count)); else System.out.println("No input");

}}


Sentinel controlled while loop example 5 5
Sentinel-Controlled while LoopExample 5-5

//This program converts uppercase letters to their// corresponding telephone digits.//********************************************************import java.util.*;publicclass TelephoneDigit{static Scanner input = new Scanner (System.in);publicstaticvoid main (String[] args) {char letter; String inputMessage; String inputString; String outputMessage; inputMessage = "Program to convert uppercase " + "letters to their corresponding " + "telephone digits.\n" + "To stop the program enter #.\n" + "Enter a letter:"; System.out.println(inputMessage);


Sentinel controlled while loop example 5 5 continued
Sentinel-Controlled while LoopExample 5-5 (continued)

letter = input.next().charAt(0);

while (letter != '#' ) { outputMessage = "The letter you entered is: " + letter + "\n" + "The corresponding telephone " + "digit is: ";

if (letter >= 'A' && letter <= 'Z') {switch (letter) {case'A':case'B':case'C': outputMessage = outputMessage+ "2"; break; case'D':case'E':case'F': outputMessage = outputMessage+ "3"; break;


Sentinel controlled while loop example 5 5 continued1
Sentinel-Controlled while LoopExample 5-5 (continued)

case'G':case'H':case'I': outputMessage = outputMessage+ "4"; break; case'J':case'K':case'L': outputMessage = outputMessage+ "5"; break;

case'M':case'N':case'O': outputMessage = outputMessage+ "6"; break; case'P':case'Q':case'R':case'S': outputMessage = outputMessage + "7"; break;


Sentinel controlled while loop example 5 5 continued2
Sentinel-Controlled while LoopExample 5-5 (continued)

case'T':case'U':case'V': outputMessage = outputMessage+ "8"; break; case'W':case'X':case'Y':case'Z': outputMessage = outputMessage+ "9"; } }else outputMessage = outputMessage + "Invalid input";

System.out.println(outputMessage); inputMessage = "Enter another uppercase letter " + "to find its corresponding " + "telephone digit.\n" + "To stop the program enter #.\n" + "Enter a letter:"; System.out.println (inputMessage); letter = input.next().charAt(0); }//end while }}


Flag controlled while loop
Flag-Controlled while Loop

  • Boolean value used to control loop.

  • General form:

    boolean found = false;

    while (!found)

    {

    .

    .

    .

    if (expression)

    found = true;

    .

    .

    .

    }


Flag controlled while loop example 5 6
Flag-Controlled while Loop-Example 5-6

/Flag-controlled while loop.

//Guessing the number game.

import java.util.*;publicclass FlagControlledLoop{static Scanner console = new Scanner(System.in);publicstaticvoid main (String[] args) {//declare the variablesint num; //variable to store the random numberint guess; //variable to store the number//guessed by the userboolean done; //boolean variable to control the loop num = (int) (Math.random() * 100);

done = false;


Flag controlled while loop example 5 6 continued
Flag-Controlled while Loop-Example 5-6 (continued)

while (!done)

{

System.out.print ("Enter an integer greater" + " than or equal to 0 and " + "less than 100: ");

guess = console.nextInt(); System.out.println();

if (guess == num) { System.out.println("You guessed the " + "correct number.");

done = true; }

elseif (guess < num)

System.out.println("Your guess is " + "lower than " + "the number.\n" + "Guess again!");

else System.out.println("Your guess is “

+ "higher than " + "the number.\n" + "Guess again!"); } //end while

}

}


While loop programming example fibonacci number
While Loop Programming Example: Fibonacci Number

  • Fibonacci formula for any Fibonacci sequence:

    an = an-1 + an-2

  • Input: First two Fibonacci numbers in sequence, position in sequence of desired Fibonacci number (n).

    • intprevious1 = Fibonacci number 1

    • intprevious2 = Fibonacci number 2

    • intnthFibonacci = Position of nth Fibonacci number

  • Output: nth Fibonacci number.


While loop programming example fibonacci number1
While Loop Programming Example: Fibonacci Number

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.


The for looping repetition structure
The for Looping (Repetition) Structure

  • Specialized form of while loop.

  • Its primary purpose is to simplify the writing of counter-controlled loops. For this reason, the forloop is typically called a counted or indexed for loop. .

  • Syntax:

    for (initial statement; loop condition; update statement)

    statement


The for looping repetition structure1
The for Looping (Repetition) Structure

  • Execution:

    • Initial statement executes.

    • Loop condition is evaluated.

    • If loop condition evaluates to true,

      • execute for loop statement and

      • execute update statement.

    • Repeat step 2 until loop condition is false.


The for looping repetition structure2
The for Looping (Repetition) Structure

Example 5-9

The following for loop prints the first 10 nonnegative integers:

for (i = 0; i < 10; i++)

System.out.print(i + " ");


The for looping repetition structure3
The for Looping (Repetition) Structure

Example 5-10

  • 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. The following for loop outputs the word Hello five times and the star only once:

    for (i = 1; i <= 5; i++)

    System.out.println("Hello");

    System.out.println("*");


The for looping repetition structure4
The for Looping (Repetition) Structure

  • Does not execute if loop condition is initially false.

  • Update expression changes value of loop control variable, eventually making it false.

  • If loop condition is always true, result is an infinite loop.

  • Infinite loop can be specified by omitting all three control statements.

  • If loop condition is omitted, it is assumed to be true.

  • Action of for loop ending in semicolon is empty.


For loop programming example classify numbers
For Loop Programming Example: Classify Numbers

  • Input: Nintegers (positive, negative, and zeros).

    int N = 20; //N easily modified

  • Output: Number of 0s, number of even integers, number of odd integers.


For loop programming example classify numbers solution
For Loop Programming Example: Classify Numbers (solution)

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


The do while loop repetition structure
The do…while Loop (Repetition) Structure

  • Syntax:

    do

    statement

    while (expression);

  • Statements are executed first and then expression is evaluated.

  • Statements are executed at least once and then continued if expression is true.



Do while loop post test loop1
do…while Loop (Post-Test Loop)

Example :

i = 0 ;

do {

System.out.print(i + “ “ ) ;

i = i + 5 ;

}while ( i <= 30 ) ;

output : 0 5 10 15 20 25 30


Break statements
break Statements

  • Used to

    • exit early from a loop. (while, for, and do...while)

    • skip remainder of switch structure.

  • Can be placed within if statement of a loop.

    • If condition is met, loop is exited immediately.

  • After the break statement executes, the program continues to execute with the first statement after the structure


Break statements1
break Statements

Example :

int count ;

for ( count = 1 ; count <= 10 ; count ++ )

{ if ( count == 5)

break ;

System.out.print(count + “ ” );

}

Output

1 2 3 4


Continue statements
continue Statements

  • 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 is evaluated immediately after continue statement.

  • In a for structure, the update statement is executed after the continue statement; the loop condition then executes.


Continue statements1
continue Statements

Example :

int count ;

for ( count = 1; count <= 10 ; count ++ )

{ if ( count == 5)

continue;

System.out.print(count + “ ” );

}

Output

1 2 3 4 6 7 8 9 10


Nested control structures
Nested Control Structures

  • 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.


Nested control structures example 5 18
Nested Control Structures (Example 5-18)

for (int i = 1; i <= 5; i++)

{

for (int j = 1; j <= i; j++)

System.out.print("*");

System.out.println();

}

Output:

*

**

***

****

*****


Nested control structures example 5 19
Nested Control Structures (Example 5-19)

//printing a multiplication table

for (i = 1; i <= 5; i++) {for (j = 1; j <= 10; j++) System.out.printf("%3d", i*j); System.out.println(); }

Output

1 2 3 4 5 6 7 8 9 102 4 6 8 10 12 14 16 18 203 6 9 12 15 18 21 24 27 304 8 12 16 20 24 28 32 36 405 10 15 20 25 30 35 40 45 50


Chapter summary
Chapter Summary

  • Looping mechanisms:

    • Counter-controlled while loop

    • Sentinel-controlled while loop

    • Flag-controlled while loop

    • for loop

    • do…while loop

  • break statements

  • continue statements

  • Nested control structures