I used a for loop for greedy but it always gives 0

I wrote greedy in more than one way (`while` loops, modulo) and then I tried a `for` loop which always gives `0` and I don't understand why! Below is the `for` loop, can any one tell me what is wrong with it?

``````for (i=change2; i==0; i=change2)
{
if (change2>=25)
{
change2=change2-25;
n=n+1;
}
else if (change2<25&&change2>=10)
{
change2=change2-10;
n=n+1;
}
else if (change2<10&&change2>=5)
{
change2=change2-5;
n=n+1;
}
else if (change2<5&&change2>=1)
{
change2=change2-1;
n=n+1;
}
}
``````

I think the test condition in the for loop should be like this

``````for (i = change2 ; i > 0 ; i = change2)
{
// do something here
}
``````

because when you write `i == 0`, then the loop executes only when `i` is initialized 0, i.e.`change2` is 0. However `change2` possesses a positive value most of the times. Therefore, using `i > 0`, will do the work as it will iterate the loop till the change is non negative. Remember not to use `i >= 0` because this will lead to an infinite loop as you don't have a escape condition when `i` is equal to 0.

• That worked ! Thanks. Aug 9 '14 at 3:32
• @MohamedAlaaEl-DinFathy Please remember to mark the answer as accepted if it helped you :) Aug 11 '14 at 22:43

Your for loop declaration is quite a mess (sorry), won't be better to use a while loop (while) change2 is higher than 0?