一直以来对for循环的疑惑,大家来看看

来源:百度知道 编辑:UC知道 时间:2024/06/15 04:48:02
看第一个程序
main()
{
int i;
for(i=0;i<10;i++)
printf("%d\n",i);
}
此式输出i最终值为9

main()
{
int i,s;
for(i=0,s=0;i<10;i++)
s+=i;
printf("%d %d",s,i);
}
此时输出i为10
为什么??
插入两数t和j
#include<stdio.h>
void main()
{
int i,t,s,j;
for(i=0,s=0;i<10;i++)
t=i;
s=s+i;
j=i;
printf("%d %d %d %d",s,t,j,i);
getch();
}
t为9 而j为10...
到底怎么回事...
i的值到底是如何变化的?

for语句是这样的:
先赋初值,再判断i是否小于10,然后操作下面的循环语句 然后使i的值加一 然后再判断i是否小于10
如果小于10 再操作下面的循环语句 如果大于10 结束循环 而且for语句碰到‘;’就代表for语句 结束 意思就是for之后第一个分号后面的就不属于for语句 (如果加了{ } 的除外)
你说的第一个i在for语句之内 所以是9
第二个在分号‘;’之后 i已经又加了一 所以是10
第三个同理 第一个i分号内 第二个在分号外

for语句执行到最后一个i++ 是9+1=10 然后判断10是否小于10(i<10) 判断是否还要执行循环

够详细了吧