有点迷糊

来源:百度知道 编辑:UC知道 时间:2024/05/18 05:42:47
看看这段代码
#include <stdio.h>
void main()
{ int n;
for(n=5; n<=10; n++)
{ if(n%3==0) continue;
printf("%3d", n);
}
printf("\n");
}
我的理解是最后应该输出的是7 8 10
但实际运行程序输出的却是5 7 8 10
n的初始值是5,n++,不就是6了吗,6能被3整除,则接着循环加一,从7开始不能被三整除,执行输出,我的理解哪出问题了?怎么输出的第一个数是5?
要是把n++,改成++n,则 ++n也是在循环后开始,结果还是5 7 8 10?

for(n=5; n<=10; n++) 里面的顺序是:

n=5;
loop:
if(n<=10)
{
/*do....*/

n++;
goto loop;
}

n++是在每次循环后开始;

你的理解错误了
你设个断点跟一下,就会发现,for循环的初始值是第一个值,
for(n=5; n<=10; n++)
{
....
}
在这个for循环里,n的取值是从5开始的,循环一次后,n的值加1,然后判断加1后的n的值是否满足"n<=10"这个条件.满足,就循环继续,否则,退出循环

for语句就是重你输入的那个书开始的