前面学习的 do-while 语句和 while 语句都适合于解决循环次数未知的重复操作,在C语言中,如果已知重复操作的次数,可以使用 for 循环语句,其一般格式如下:
for(循环变量初始化;循环条件;循环变量增量) { 循环体 //一条或多条 C 语句 } //若循环体内只有一条语句,则花括号可以不写
循环变量必须在 for 循环语句之前被声明过,一般定义为 int 型。循环变量增量一般情况下是递增或递减循环变量的语句,比如 i++、i--、++i、i-=2、i=i+2、i%=4 等等。
图 1a) 展示了 for 循环语句的执行过程:
1) 循环变量赋初值;
2) 判断循环条件,如果成立,执行循环体内的语句;如果不成立,则转到步骤 5;
3) 执行循环变量增量语句;
4) 转回步骤 2 继续执行;
5) 循环结束,执行 for 循环语句后面的语句。
图 1b) 为输出 1~100 的所有整数的 for 语句示例(红色箭头为循环执行顺序,变量 i 为循环变量)。
如果把一个 for 循环语句放在另一个 for 循环语句的循环体中,就构成了 for 循环的嵌套。其一般格式如下:
for(外层循环变量 i 初始化;外层循环条件;外层循环变量 i 增量) { …… for(内层循环变量 j 初始化;内层循环条件;内层循环变量 j 增量) { 内层循环体 } …… }
在 for 循环的嵌套中,内层的 for 循环语句要执行外层的循环变量 i 所指定的次数。例如,要打印 3 行“12345”,就可以使用 for 循环的嵌套。外层的循环从 1 到 3,而内层的循环从 1 到 5,如图 2 所示。