int main (void)
{
int i;
int sum = 0;
for ( i=1, i<=10, ++i )
sum = sum + i;
printf("sum = %d\n", sum);
return 0;
}
//以上是利用for循环求从1加到10的和的示例程序
1、下面解释在这个程序中for循环是如何进行实现的
首先为方便理解令for循环中的 i = 1为①,i <=10 为②,++i为③,sum = sum + i为④,printf输出函数为⑤;
明确⑤不是属于for循环里面的,if 默认控制一条语句,for 也是默认控制一条语句,后面的while, do while都只是默认控制一条语句,什么叫一条语句呢,在C语言中一个分号为一个语句。
此处for循环的执行顺序为:先执行①, ①执行完之后再执行②,②如果成立则标志着循环成立,循环成立则先执行④,再执行③,③执行完之后标志着循环一次结束。是否需要再执行下一次循环需要再执行②语句,②如果成立标志着需要再执行循环,则再执行④,④执行完之后再执行③,标志着又一次循环结束,所以说③是标志着循环一次结束,然后再判断②,②只要成立就不停的循环,②不成立则退出for循环,执行下面的输出语句,同时注意在这个for循环中①只执行了一次。
2、以下再解释多个for循环的嵌套使用
for (1; 2; 3)
for(4; 5; 6)
A;
B;
以上两个for循环的实现过程为:
首先要明确上面的代码段整体可以视为两个语句,第二行和第三行整体算一个语句,而这个语句又是外层for循环的语句,所以前三行可以视为一个语句,然后B是一个语句,所以总体视为两个语句。
先执行1,再执行2,2如果成立执行第二个for循环中的4,再执行5,5如果成立执行A,再执行6,6的执行标志着第二个for循环的一次循环结束,6执行结束再执行5,5如果还成立再执行A,之后再执行6,标志着第二个for循环又一次循环结束,然后再执行5,5如果成立重复上面的执行步骤,5如果不成立标志着内层for循环执行结束,然后再转去执行3,3的执行标志着第一个for循环的一次循环结束,再执行2进行判断,2如果成立则依旧重复上面的执行步骤,2如果不成立,则说明外层for循环执行结束,然后再执行B,B执行结束则上面的代码段执行结束。
3、对上方程序做些改动
for(1; 2; 3)
for(4; 5; 6)
{
A;
B;
}
上方程序整体视为一个语句;
for (7; 8; 9)
for (1; 2; 3)
{
A;
B;
for (4; 5; 6)
C;
}
上方函数亦可视为一个语句。
总结:for循环默认只可以控制一个语句。