This week's book giveaway is in the OO, Patterns, UML and Refactoring forum.We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma 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 Refactoring for Software Design Smells: Managing Technical Debt this week in the OO, Patterns, UML and Refactoring forum!

# 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
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
& 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
& 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