Win a copy of Functional Reactive Programming this week in the Other Languages forum!

# Something is fishy out here..

sonir shah
Ranch Hand
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
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
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
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
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