for循环
在前面的小节中分别讲解了while循环和do…while循环。在程序开发中,还经常会使用另外一种循环语句,即for循环,它通常用于循环次数已知的情况,具体语法格式如下:
for(初始化表达式; 循环条件; 操作表达式)
{
执行语句
}
在上面的语法格式中,for关键字后面()中包括了初始化表达式、循环条件和操作表达式3部分内容,它们之间用“;”分隔,{}中的执行语句为循环体。
接下来分别用“①”表示初始化表达式、“②”表示循环条件、“③”表示操作表达式、“④”表示循环体,通过序号来分析for循环的执行流程,具体如下:
for(① ; ② ; ③)
{
④
}
第1步,执行①。
第2步,执行②,如果判断条件的值非0,执行第3步;如果判断条件的值为0,退出循环。
第3步,执行④。
第4步,执行③,然后继续执行第2步。
第5步,退出循环。
for循环结构的流程图如图1所示。
>图1 for循环流程图
下面通过一个案例演示for循环的用法,该案例要求使用for循环实现自然数1~100求和,案例的具体实现如例1所示。
例1 for.c
1 #include <stdio.h>
2 int main()
3 {
4 int sum = 0;
5 for(int i = 1; i <= 100; i++) //i的值会在1~100之间变化
6 {
7 sum += i; //实现sum与i的累加
8 }
9 printf("sum = %d\n", sum);
10 return 0;
}
例1运行结果如图2所示。
图2 例1运行结果
在例1中,第4行代码定义变量sum并初始化为0,用于存储累加和;第5~8行代码使用for循环实现数据累加。在for循环中定义并初始化变量i的值为1,i=1语句只会执行这一次。接下来判断循环条件i<=100是否成立,条件成立,则执行循环体sum+=i,执行完毕后,执行操作表达式i++,i的值变为2,然后继续进行条件判断,i<=100成立,开始下一次循环…,直到i=101时,条件i<=100不成立,结束循环,执行for循环后面的第9行代码,打印“sum=5050”。
为了让读者能熟悉循环的执行过程,现以表格形式列举循环中变量sum和i的值的变化情况,具体如表1所示。
表1 sum和i循环中的值
循环次数 | i | sum |
---|---|---|
第1次 | 1 | 1 |
第2次 | 2 | 3 |
第3次 | 3 | 6 |
第4次 | 4 | 10 |
… | … | … |
第100次 | 100 | 5050 |