This week's book giveaway is in the Design forum.We're giving away four copies of Building Microservices and have Sam Newman on-line!See this thread for details.
Big Moose Saloon
 Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies Register / Login Win a copy of Building Microservices this week in the Design forum!

# Nested loop

Faqeer Khudaka
Ranch Hand

Joined: Jan 24, 2006
Posts: 32
Hello,

Can anyone explain how the answer is 012345 for the following nested loop mock exam question:

regards
Srinivas Tuta
Greenhorn

Joined: Oct 12, 2005
Posts: 10
Hi,

outer while loop loops for three times.

first loop : inner do-while loops for four times j=0,j=1,j=2,j=3

second loop: since do-while j=4

third loop: j=5

outer loop breaks as i became 3

thankyou
Srinivas
Henry Wong
author
Sheriff

Joined: Sep 28, 2004
Posts: 20057

44

The outer while loop will run three times, with i = 0, with i = 1, and then with i = 2.

The first time the do loop runs, it will run 4 times. with j = 0, with j = 1, with j = 2, and then with j = 3. The reason there seems to be an extra iteration is because the condition check for the do-loop is at the end.

The second and third time the do-loop runs, they will both run once each -- with j = 4, and with j = 5. Just as before, since the checking is at the end, it seems to run at least one extra iteration.

Henry

satya mahapatra
Ranch Hand

Joined: Jan 07, 2006
Posts: 134
class JMM114
{
public static void main (String[] args)
{
int i = 0, j = 0;
while (i++ < 3) do System.out.print(j); while (j++ < 3);}}

Regards,<br />Satya<br />SCJP,SCWCD
satya mahapatra
Ranch Hand

Joined: Jan 07, 2006
Posts: 134
class JMM114
{
public static void main (String[] args)
{
int i = 0, j = 0;
while (i++ < 3)
{
do

System.out.print(j);
while (j++ < 3);}}
satya mahapatra
Ranch Hand

Joined: Jan 07, 2006
Posts: 134
class JMM114
{
public static void main (String[] args)
{
int i = 0, j = 0;
while (i++ < 3)
{
do
{
System.out.print(j);
}while (j++ < 3);
}
}
}
so while(i++<3) is the outer loop. and do-while loop is inner loop. i think now ye doubt is cleard;
Anju sethi
Ranch Hand

Joined: Dec 26, 2005
Posts: 91
...thanks for explanation.

this is a silly question but i want to know
On the first place, is it possible to have multiple lines in a while loop without starting and ending braces.

for eg. how "while(...)do{....}while(...);" is including multiple lines as the body of the outer while loop without braces.
Ideally it should be while(...){
do{....}
while(...);
}

as per my knowledge, without braces any loop will have only one (first) statement in the body of the loop.

why we are not getting problem in the above code
while(...)do{....}while(...);

thanks,<br />Anju Sethi

I’ve looked at a lot of different solutions, and in my humble opinion Aspose is the way to go. Here’s the link: http://aspose.com

subject: Nested loop