While condition

These two codes are logically same, but why the output is different in both case?


int sum(int x)

{

int s=0;

while(x--)

{

    s=s+x;

}

return s;

}


AND

int sum(int x)

{

int s=0;

while(x!=0)

{

    s=s+x;

    x--;

}

return s;

}

while(x--)

For the first sum function, the x-- in this line means you are reducing the value of x by 1(x = x-1;). So, if the value of x was 5 then it will be reduced to 4 and we are then adding 4 to s.

In the second sum function if the value of x is 5, we are not reducing anything in start, we then add 5 to s and after that the value of x is reduced.

This is the difference between both.

2 Likes

agreed

1 Like

In the first while loop the value of x is decremented before it’s added to x while in second one x was added first then decremented

1 Like

@ayushkr07 is absolutely correct in earlier approach you are using post decrement in while loop where

  • firstly condition is checked to be true

  • post decrement of x will take place

  • now that updated value of x is added in s

but in second approach

  • firstly condition is checked to be true

  • now value of x is added in s

  • post decrement will take place

the only difference in result of both cases is that you will not able to add initial value of x in s in first one while in other you can

Hope you like my explaination @yash_kr_03

1 Like

yah, I like your explaination.
Thanks. @hi_sajal

I understood.
Thanks @gla2115000364

Thanks @ayushkr07