C语言中for循环语句的问题,且能否帮忙改成while语句

2025-04-13 08:41:26
推荐回答(4个)
回答(1):

x--,先判断,后计算。
在循环体内的时候,当x减到0,然后判断,发现条件(x>0)不成立,退出。此时对x没有任何赋值操作。
在循环判断条件的时候,当x减到0,判断,发现条件(x>0)不成立,退出。但是,此时x--还有一步减法没有操作,继续,变成-1.
如果是--x,两个结果就一样。这个是先计算,后判断(或者其他运算)

回答(2):

for执行的顺序是
比如
for(1;2;3)
{4}
这里执行顺序是
1243243243直到2不满足跳出循环
所以要改写的话应该把1放在while上面,2是条件,4是循环体,3摆在循环体的下一句就行了

回答(3):

#include "stdio.h"
main()
{
int i,sum;
sum=0;
i=1;
while(i<=50)
{
if(!(i%7))
sum+=i;
// else 把这个else去掉,否者当(!(i%7))成立,i就不会继续产生变化,导致程序一直执行sum+=i
i++;
}
printf("sum=%d\n",sum);
}
// else 把这个else去掉,否者当(!(i%7))成立,i就不会继续产生变化,导致程序一直执行sum+=i,也就是i++,无论if成不成立都需要运行的

回答(4):

一:根据for(i=1;i<=50;i++) 得出1为i=1;2为i<=50;3为i++;
二:你的while循环里面,当i=7时就进入了死循环,改一下;
while(i<=50)
{
if(!(i%7))
sum+=i;
i++;
}