Meaningless Drivel is fun!
The moose likes Programmer Certification (SCJP/OCPJP) and the fly likes confusing for Loop. Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Certification » Programmer Certification (SCJP/OCPJP)
Bookmark "confusing for Loop." Watch "confusing for Loop." New topic

confusing for Loop.

sonir shah
Ranch Hand

Joined: Nov 01, 2001
Posts: 435
What will the following code print?

Ans: It will print 10
My question is that the if statement satisfies in the 2 checking loop itself.first
i=0,j=0,k=1;---> c=2
here itself k>j i.e 1>0
so the value of c must be 2..
please explain where am i wrong?
Roy Ben Ami
Ranch Hand

Joined: Jan 13, 2002
Posts: 732
the break statement in the most inner loop only stops the most inner loop.
the 2 outer ones will continue again so at the end c is 10.
DC Dalton
Ranch Hand

Joined: May 28, 2001
Posts: 287
If you put println's inside each for loop & one right after c is incremented you will see this result:
F:\JavaProgs>java Test
i is: 0
j is: 0
k is: 0
c is: 1
k is: 1
c is: 2
j is: 1
k is: 0
c is: 3
k is: 1
c is: 4
k is: 2
c is: 5
i is: 1
j is: 0
k is: 0
c is: 6
k is: 1
c is: 7
j is: 1
k is: 0
c is: 8
k is: 1
c is: 9
k is: 2
c is: 10
If you use this to follow the loops thru I think you will get have to remember that when you break out of a loop to another loop the inner loop variable will be re-initialized when it is hit again. Look at the code & these results & try writing it down in a small chart.....I thikn this will help you see whats up.
[ January 13, 2002: Message edited by: DC Dalton ]
I agree. Here's the link:
subject: confusing for Loop.
It's not a secret anymore!