jQuery in Action, 2nd edition*
The moose likes Programmer Certification (SCJP/OCPJP) and the fly likes Something is fishy out here.. 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 "Something is fishy out here.." Watch "Something is fishy out here.." New topic
Author

Something is fishy out here..

sonir shah
Ranch Hand

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

Options :
1)0 3
2)0 2
3)3 0
4)3 3
5)2 2
Answer : 4)3 3
My question is i<3, so how can 'i' ever reach to value 3 in the output
Sonir
Anonymous
Ranch Hand

Joined: Nov 22, 2008
Posts: 18944

well the above code will iterate
i = 0, j = 3 and then continue called
i = 1, j = 3 and then continue called
i =2, j = 3 and then continue called
and then i = 3 then compared to i > 3
( Is 3 > 3 ) will return false
So code will print
i = 3 & j = 3
Hope this helps!!!
sonir shah
Ranch Hand

Joined: Nov 01, 2001
Posts: 435
Amish,

and then i = 3 then compared to i > 3

but i<3, so how can i ever reach 3???
Sonir
Anonymous
Ranch Hand

Joined: Nov 22, 2008
Posts: 18944
Sonir
Sorry I meant ( Is 3 < 3 ) will return false
The value of i does reach 3 and at 3 your outer exits. Think of for loop like this

first do the comparison
then execute your block
& at the end do the increement

for e.g.
int i = 0;
for ( i = 1; i < 3; i++; )
{
}
before even u execuet the for loop u would do the intialization
which is i = 1;
Iteration 1
then you would do the comparison
Anonymous
Ranch Hand

Joined: Nov 22, 2008
Posts: 18944
Sonir
Sorry I meant ( Is 3 < 3 ) will return false
The value of i does reach 3 and at 3 your outer exits. Think of for loop like this

first do the comparison
then execute your block
& at the end do the increement

for e.g.
int i = 0;
for ( i = 1; i < 3; i++; )
{
// body of the loop
}
before even u execuet the for loop u would do the intialization
which is i = 1;
you would do the comparison
execute the body of the loop
then increment your i
again do the comparison
execute the body of the loop
then increment your i
The important thing to remember is that in a for loop the increment occurs after the body of the loop executes.
Hope this helps
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Something is fishy out here..
 
Similar Threads
Problem with GUI
Solution for deadlock
About Strings...
How to make rectangle drawn to be vissible when a new rectangle is drawn
Calculating the distance between two points problem