0% found this document useful (0 votes)
4 views

Iteration.pptx

The document provides an overview of iteration statements in Java, focusing on the use of loops such as while, do-while, and for loops. It explains the syntax and behavior of each loop type, including examples for practical understanding. Additionally, it covers concepts like sentinel values, input validation, nested loops, and control statements like break and continue.

Uploaded by

nabilaraf50
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views

Iteration.pptx

The document provides an overview of iteration statements in Java, focusing on the use of loops such as while, do-while, and for loops. It explains the syntax and behavior of each loop type, including examples for practical understanding. Additionally, it covers concepts like sentinel values, input validation, nested loops, and control statements like break and continue.

Uploaded by

nabilaraf50
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 47

CSE110: Object Oriented

Programming in Java

Iteration
Rabea Khatun
Lecturer
Dept. Of CSE
East West University

Rabea Khatun, Lecturer,CSE, East West University 1


Motivation
Suppose that you need to print a string (e.g.,
"Welcome to Java!") a thousand times. It would be
tedious to have to write the following statement a
hundred times:

System.out.println("Welcome to
Java!");

So, how do you solve this problem?

Rabea Khatun, Lecturer,CSE, East West University 2


Motivation

Solution: Use loops i.e.,


for, while, do-while

Rabea Khatun, Lecturer,CSE, East West University 3


Loops/ Iteration Statements
Loops are repetition statements that allow us to execute a
statement (or block of statements) multiple times
Like conditional statements, they are controlled by boolean
expressions
Java has three types of loop statements:
• the while loop
• the do-while loop
• the for loop
• The programmer should choose the right type of loop for
the situation at hand

Rabea Khatun, Lecturer,CSE, East West University 4


Loops/ Iteration Statements

The while and do-while loops are also called conditional loops
since they use boolean expressions to control the loop behavior
The while and do-while loops run un-determined (unknown)
number of iterations (some call them non-deterministic loops)
The for loop, on the other hand, runs a pre-determined
(known) number of iterations (some call it deterministic loop or
counting loop)

Rabea Khatun, Lecturer,CSE, East West University 5


while Loop Statement
• A while loop (statement) has the following syntax:
while (condition)
statement block; //loop body

• If the condition is true, the statement block is


executed
• Then the condition is evaluated again, and if it is
still true, the statement is executed again
• The statement is executed repeatedly until the
condition becomes false

Rabea Khatun, Lecturer,CSE, East West University 6


while Loop Statement
Trace while Loop
Initialize count
int count = 0;
while (count < 2) {
System.out.println("Welcome to Java!");
count++;
}
Trace while Loop, cont.
(count < 2) is true
int count = 0;
while (count < 2) {
System.out.println("Welcome to Java!");
count++;
}
Trace while Loop, cont.
Print Welcome to Java
int count = 0;
while (count < 2) {
System.out.println("Welcome to Java!");
count++;
}
Trace while Loop, cont.
Increase count by 1
int count = 0; count is 1 now

while (count < 2) {


System.out.println("Welcome to Java!");
count++;
}
Trace while Loop, cont.
(count < 2) is still true since count is 1
int count = 0;
while (count < 2) {
System.out.println("Welcome to Java!");
count++;
}
Trace while Loop, cont.
Print Welcome to Java
int count = 0;
while (count < 2) {
System.out.println("Welcome to Java!");
count++;
}
Trace while Loop, cont.
Increase count by 1
int count = 0; count is 2 now

while (count < 2) {


System.out.println("Welcome to Java!");
count++;
}
Trace while Loop, cont.
(count < 2) is false since count is 2
int count = 0; now

while (count < 2) {


System.out.println("Welcome to Java!");
count++;
}
Trace while Loop
The loop exits. Execute the next
int count = 0; statement after the loop.

while (count < 2) {


System.out.println("Welcome to Java!");
count++;
}
while Loop Sentinel Value
Question: How can we control a while loop?

• A sentinel value is a special input value that represents


the end of inputs from the user
• The sentinel value should be included in the prompt so
that the user knows how to stop the loop. For example,
System.out.println(“Enter a grade (type 9999 to quit): ”);

• A sentinel value gives the user control over the loop


• See Average.java next slide
Sentinel Value Example
// Demonstrates the use of a while loop using a sentinel value
import java.text.DecimalFormat;
import java.util.Scanner;
public class Average
{
public static void main (String[] args)
{ int sum = 0, value, count = 0;
double average;
Scanner scan = new Scanner (System.in);
System.out.print ("Enter an integer (0 to quit): ");
value = scan.nextInt();
while (value != 0) //sentinel value of 0 to terminate loop
{ count = count + 1;
sum = sum + value;
System.out.println ("The sum so far is " + sum);
System.out.print ("Enter an integer (0 to quit): ");
value = scan.nextInt();
}
System.out.println ();
if (count == 0)
System.out.println ("No values were entered.");
else
System.out.println ("Sum of all values = " + sum);
}
}
while Loops for Input Validation

• A while loop can be used for input validation,


making a program more robust
• Input validation allows the program to ensure
correct input values before the input is processed
• It also allows the program to issue error messages
to the user when invalid data is entered
• See WinPercentage.java next slide
Input Validation Example
// Demonstrates the use of a while loop for input validation
import java.text.NumberFormat;
import java.util.Scanner;
public class WinPercentage
{
public static void main (String[] args)
{
final int NUM_GAMES = 12;
int won;
double ratio;
Scanner scan = new Scanner (System.in);
System.out.print ("Enter the number of games won (0 to "
+ NUM_GAMES + "): ");
won = scan.nextInt();
//input validation
while (won < 0 || won > NUM_GAMES)
{
System.out.print ("Invalid input. Please reenter: ");
won = scan.nextInt();
}
ratio = (double)won / NUM_GAMES;
NumberFormat fmt = NumberFormat.getPercentInstance();
System.out.println ();
System.out.println ("Winning percentage: " + fmt.format(ratio));
}
}
do-while Loop

• A do-while loop has the following syntax:


do
{
statement block;
} while (condition)

• The statement is executed once initially, and then


the condition is evaluated
• The statement is executed repeatedly until the
condition becomes false
Logic of do-while Loop

Statement
Block conditio
n
Loop body evaluate
d
tru fals
tru
e e e
conditio Statement
n block
evaluate
d

fals While Loop


e

Next Line
do-while Loop Example

• An example of a do loop:
int count = 0;
do
{
count = count +1;
System.out.println (count);
} while (count < 5);

• The body of a do loop executes at least once


• See ReverseNumber.java next slide
do-while Loop Example
// Demonstrates the use of a do loop
import java.util.Scanner;
public class ReverseNumber
{
public static void main (String[] args)
{
int number, lastDigit, reverse = 0;
Scanner scan = new Scanner (System.in);
System.out.print ("Enter a positive integer: ");
number = scan.nextInt();
do
{
lastDigit = number % 10;
reverse = (reverse * 10) + lastDigit;
number = number / 10;
} while (number > 0);

System.out.println ("That number reversed is " + reverse);


}
}
for Loop

• A for statement has the following syntax:


The initialization The statement is
is executed once executed until the
before the loop condition becomes
begins false

for (initialization; condition; increment)


statement;

The increment portion is executed


at the end of each iteration
for Loop Logic

While Loop
initializatio
conditio
n n
evaluate
conditio d
n tru fals
evaluate e e

d statement block
tru fals
e e
statement
block
Like a while loop, the condition of a for
increme
nt loop is tested prior to executing the loop
body. Therefore, the for loop body will
execute zero or more times
Trace for Loop
Declare i
int i;
for (i = 0; i < 2; i++) {
System.out.println("Welcome to Java!");
}
Trace for Loop, cont.
Execute initializer
i is now 0
int i;
for (i = 0; i < 2; i++) {
System.out.println("Welcome to Java!");
}
Trace for Loop, cont.
(i < 2) is true
since i is 0
int i;
for (i = 0; i < 2; i++) {
System.out.println("Welcome to Java!");
}
Trace for Loop, cont.
Print Welcome to Java

int i;
for (i = 0; i < 2; i++) {
System.out.println("Welcome to Java!");
}
Trace for Loop, cont.
Execute adjustment statement
i now is 1
int i;
for (i = 0; i < 2; i++) {
System.out.println("Welcome to Java!");
}
Trace for Loop, cont.
(i < 2) is still true
since i is 1
int i;
for (i = 0; i < 2; i++) {
System.out.println("Welcome to Java!");
}
Trace for Loop, cont.
Print Welcome to Java

int i;
for (i = 0; i < 2; i++) {
System.out.println("Welcome to Java!");
}
Trace for Loop, cont.
Execute adjustment statement
i now is 2
int i;
for (i = 0; i < 2; i++) {
System.out.println("Welcome to Java!");
}
Trace for Loop, cont.
(i < 2) is false
since i is 2
int i;
for (i = 0; i < 2; i++) {
System.out.println("Welcome to Java!");
}
Trace for Loop, cont.
Exit the loop. Execute the next
statement after the loop
int i;
for (i = 0; i < 2; i++) {
System.out.println("Welcome to Java!");
}
for Loop as a while Loop

• A for loop is functionally equivalent to the


following while loop structure:
for (initialization; condition; increment)
statement block;

initialization;
while (condition)
{
statement block;
increment;
}
Infinite Loops
• The body of a while loop eventually must make
the condition false
• If not, it is called an infinite loop, which will execute
until the user interrupts the program
• This is a common logical error
• You should always double check the logic of a
program to ensure that your loops will terminate
normally
Example

• An example of an infinite loop:


int count = 1;
while (count <= 25)
{
System.out.println (count);
count = count - 1; //Error
}
Be Careful!
• If the condition is left out, it is always considered to
be true, and therefore creates an infinite loop
for (int count=1; count <= 5; count = count+1)
System.out.println (count);

• If the increment is left out, no increment operation


is performed, and therefore creates an infinite loop
Nested Loops

• Similar to nested if statements, loops can be


nested as well
• That is, the body of a loop can contain other loop
statements
• For each iteration of the outer loop, the inner loop
iterates completely
Example
// Demonstrates the use of nested for loops to print starts
public class Stars
{
public static void main (String[] args)
{
final int MAX_ROWS = 10;

for (int row = 1; row <= MAX_ROWS; row++) *


{ **
***
for (int star = 1; star <= row; star++) ****
System.out.print ("*"); *****
******
*******
System.out.println(); ********
} *********
**********
}
}
Nested Loops Iterations
How many times will the string "I am here" be printed?
// Demonstrates the use of nested loops
public class NestedLoops
{
public static void main (String[] args)
{ String str, another = "y";

int count1 = 1;
while (count1 <= 10)
{
int count2 = 1;
while (count2 <= 5)
{
System.out.println("I am here!");
count2 = count2 + 1;
}
System.out.println(); // blank line
count1 = count1 + 1;
}
}
}
Control Statement(Jump)
Break
Break cause immediate termination of execution of a iterative
statement.
Level Break
A level break cause immediate termination of execution of a
program portion and put control to a portion after that level. For
example

Rabea Khatun, Lecturer,CSE, East West University 44


Control Statement(Jump)
Continue
Continue causes iterative statement to continue by skipping
residual portion of program.
Level Continue
A level continue causes to repeat execution of a program portion
by skipping residual portion. For example

Rabea Khatun, Lecturer,CSE, East West University 45


Using break and continue
Examples for using the break statement:
// demonstrate break statement
public class TestBreak {
public static void main(String[] args) {
int sum = 0;
int number = 0;

while (number < 20)


{
number = number + 1;
sum = sum + number;
if (sum >= 100) // stop if sum is over 100
break;
}

System.out.println("The number is " + number);


System.out.println("The sum is " + sum);
}
}
Using break and continue
Examples for using the continue statement:
// demonstrate continue statement
public class TestContinue {
public static void main(String[] args) {
int sum = 0;
int number = 0;

while (number < 10) {


number = number + 1;
if (number == 5 || number == 6)
continue; // do not add 5 and 6 to sum
sum = sum + number;
}

System.out.println("The number is " + number);


System.out.println("The sum is " + sum);

}
}

You might also like