for循环的一般形式为:
for(表达式1
表达式2
表达式3){
语句块
}
2.
它的执行过程如下:
1)
先求解表达式1。
2)
求解表达式2,若其值为真(非0),则执行循环体,否则结束循环。
3)
执行完循环体,再求解表达式3。
4)
重复执行步骤
2)
和
3),直到循环结束。
注意:表达式1仅在第一次循环时求解,以后都不会再执行,可以认为这是一个初始化语句。
3.
for循环的执行过程可用下图表示:
4.
比如我们用for循环来计算1加到100的值:
#include
int
main(){
int
i,
sum=0
for(i=1
i<=100
i++){
sum+=i
}
printf("%d\n",sum)
return
0
}
运行结果:
5050
代码分析:
1)
执行到
for
语句时,先给
i
赋初值1,判断
i<=100
是否成立;因为此时
i=1,i<=100
成立,所以执行循环体。循环体执行结束后(sum的值为1),再计算
i++。
2)
第二次循环时,i
的值为2,i<=100
成立,继续执行循环体。循环体执行结束后(sum的值为3),再计算
i++。
3)
重复执行步骤
2),直到第101次循环,因为此时
i
的值为101,i<=100
不成立,所以结束循环。
循环的过程是先执行第一个大循环for(i=0i<3i++),此句中先给i赋值0,在判断条件i<3是否成立赋值后的i=0了,所以条件成立,成立则做下面一条语句,就是for(j=0j<4j++),同样这个循环还是先赋值j=0,在进行判断j<4是否成立,成立就再做下一句。此时scanf语句后面已经没有语句了,所以程序就会跳上去到第二个循环中,即for(j=0j<4j++)这句话中,可能你会问为什么不是第一句
(因为在循环嵌套中只有循环体执行完成所以的任务后才执行下面的语句,就是for(j=0j<4j++)
要全部执行完毕才能执行后面的语句。即j<4条件为假时跳出)跳到for(j=0j<4j++)这个循环体以后。就会自动加一,就是执行j++(注:在这个for里面的j=0不再执行),这个赋值过程只在开始时执行。所以
j
这个循环要执行到条件不满足时停止,即最后j的值要>=4.。
这样
j
这个循环就结束了。结束后又跳到了第一句。因为第二个for是包含在第一个for
里的。只有第一个for
里包含的语句全部执行完后第一个for就再一次执行i++,i
变成了2,判断条件i<3成立,就再执行下一句,所以下面的for(j=0j<4j++)又要再一次执行。执行完后就在回到第一个for执行。
原理:
i=0,j
执行4次,给a[0][0],a[0][1],a[0][2],a[0][3]赋值
i=1,j
执行4次,给a[1][0],a[1][1],a[1][2],a[1][3]赋值
i=2,j
执行4次,给a[2][0],a[2][1],a[2][2],a[2][3]赋值
i=3跳出.
还有不懂再问
所有的语言都是顺序执行的,自上而下,自左而有。程序从外循环执行下去,遇到内循环后就执行内循环语句。内循环语句执行完成后,继续往下执行,遇到外循环的语句时,进入下一次外循环。
跟大家说下c语言循环的知识,以下以for循环为例,内循环与外循环的区别在于{}的位置:
for(int i = 0i<10i++){
for(int j=0j<10j++){
}
}
其中for(int j=0j<10j++)为内循环,for(int i = 0i<10i++)为外循环,执行过外循环之后才会执行内循环。