main()
{int i,sum;
i=1;sum=0;
while(i<=5){
if(i==3)continue;
sum+=i;
i++;}
printf("%d",sum);
}
这为什么和用for语句循环结果不一样呢????
continue是从当前语句跳转到循环首部
for的判别过程是累计->判断
而while的判别过程是直接判断
就你的程序而言 如楼上所言由于i不会累计所以判别条件恒为真
解决方法就是将i的累计操作放到continue前面
可以是这样的
main()
{int i,sum;
i=0;sum=0;
while(i++<=5){
if(i==3)continue;
sum+=i;
}
printf("%d",sum);
}
for的判别过程是累计->判断
而while的判别过程是直接判断
就你的程序而言 如楼上所言由于i不会累计所以判别条件恒为真
解决方法就是将i的累计操作放到continue前面
可以是这样的
main()
{int i,sum;
i=0;sum=0;
while(i++<=5){
if(i==3)continue;
sum+=i;
}
printf("%d",sum);
}
温馨提示:答案为网友推荐,仅供参考
第1个回答 2007-03-16
不清楚你的程序想表达什么?
continue是跳到下一次循环,也就是说你的程序当i=3时, continue,又什么都没做就跳到if(i=3)这里执行,肯定就死循环了。
假如你的程序想表达1+2+4+5的话
就
if (i = 3)
{
i++; continue;
}
continue是跳到下一次循环,也就是说你的程序当i=3时, continue,又什么都没做就跳到if(i=3)这里执行,肯定就死循环了。
假如你的程序想表达1+2+4+5的话
就
if (i = 3)
{
i++; continue;
}
第2个回答 2019-02-11
一样的啊,第一个只是把取出的字符存放在ch中,两者没有差别