aspose file tools*
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


Win a copy of The Java EE 7 Tutorial Volume 1 or Volume 2 this week in the Java EE forum
or jQuery UI in Action in the JavaScript forum!
JavaRanch » Java Forums » Certification » Programmer Certification (SCJP/OCPJP)
Bookmark "confusing for Loop." Watch "confusing for Loop." New topic
Author

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
c=0;
i=0,j=0,k=0;--->c=1
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?
Sonir
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
10
If you use this to follow the loops thru I think you will get it.....you 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 ]
 
jQuery in Action, 2nd edition
 
subject: confusing for Loop.