这个循环问题怎么弄

来源:百度知道 编辑:UC知道 时间:2024/05/13 15:03:49
int a,b;
cin>>a>>b;
for(int i=0;i=a+b;i++)
{
cout<<i<<endl;
a--;b--
}
循环体最多循环几次??

尽管i=a+b是一个赋值语句,但是如果a+b值为0,则被判该句为假,循环终止。
a--,b--,同时相减,a+b少了2,仅有当a+b为偶数,才有被减到0的希望,循环才能终止。设循环次数为n,则有(a+b)-n*2=0.即循环次数n=(a+b)/2.
相反,若a+b为奇数,则a+b没被减为0的希望,故此时该循环为死循环。

(a+b)/2,向上取整

如果a+b为偶数,那么执行(a+b)/2次,如果a+b为奇数,则无限循环.

因为for循环中间条件语句i=a+b;是赋值语句,而不是判断语句,所以次循环是无限循环,即死循环。

同意tanyuguo大虾的答案!
kellyleo兄,请别忘记了C表达式也有值!
i=a+b;表达式的值为0时,就可以跳出循环了!
for(i=0; i=0;i++)就可以跳出循环啦!!