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语句的嵌套就是多层for循环的使用,举个二维数组赋值的例子,
int
a[3][4]
//定义一个3行4列的二维数组
int
i
//用来控制行
int
j
//用来控制列
int
tmp=1
for(i=0i<3i++)
//该循环就是第一层循环,用来控制行号
{
for(j=0i<4j++)
//该循环就是第二层循环,用来控制列号
{
a[i][j]=tmp++
}
}
//到这里就实现了二维数组的赋值操作
看代码这是输出一个由*
号组成的等腰三角形.
for(j=1j<=10-ij++)
是控制空格的数量,
第一行9个,
后面的每行少一个.
for(j=1j<=2*i-1j++)
是输出
*
号,
第一行1个,
后面的每行多两个.
第一行
9个空格,
1个
*
:
*
第二行
8个空格,
3个
*
:
***
第三行
7个空格,
5个
*
:
*****
第四行
6个空格,
7个
*
: *******
第五行
5个空格,
9个
*
:
*********