This week's book giveaway is in the JavaScript forum.We're giving away four copies of Cross-Platform Desktop Applications: Using Node, Electron, and NW.js and have Paul Jensen on-line!See this thread for details.
Win a copy of Cross-Platform Desktop Applications: Using Node, Electron, and NW.js this week in the JavaScript forum!
programming forums Java Java JSRs Mobile Certification Databases Caching Books Engineering Languages Frameworks Products This Site Careers Other all forums
this forum made possible by our volunteer staff, including ...
Marshals:
Sheriffs:
Saloon Keepers:
Bartenders:

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