知识点回顾:
1. 入口条件循环和出口条件循环
2. 循环的基本结构
通常一个循环都将涉及到三个动作:
· 初始化计数器
· 判断循环条件是否满足
· 更新计数器
3. for 语句
对于 while 语句,这些动作是分散在三个不同的地方。那如果能够把它们都集中到一块,那么对于后期无论是调试也好修改也罢,无疑就便捷了许多。没错,当年 C 语言作者也是跟我们想到一块去了,所以 for 语句就这么应运而生。
for (表达式1; 表达式2; 表达式3)
循环体
三个表达式用分号隔开,其中:
· 表达式1是循环初始化表达式
· 表达式2是循环条件表达式
· 表达式3是循环调整表达式
这样一来,for 语句将初始化计数器、循环条件判断、更新计数器三个动作组织到了在一起,那么以后如果要修改循环的次数,每次递进的跨度,或者循环结束条件,只需要在 for 语句后边的小括号内统一修改即可。
4. 灵活的 for 语句
for 语句的表达式1,表达式2和表达式3都可以按照需要进行省略(但分号不能省):
· for ( ; 表达式2; 表达式3)
· for (表达式1; 表达式2; )
· for (表达式1; ; )
· for ( ; ; )
· ……
注意:如果目的不是特别明确,建议不要这么做,因为程序的可读性会因此而降低!
5. 最后提一下 C99 的新标准:C99 允许在 for 语句的表达式1中定义变量。
#include <stdio.h>
int main()
{
for (int i=0, int j=10; i < j; i++, j--)
{
printf("%d\n", i);
}
return 0;
}
注意:在编译时需要加上–std=c99,否则可能会出错。
[fishc@localhost s1e14]$ gcc –std=c99 test.c && ./a.out 0 1 2 3 4
增加这个新特性的原因主要是考虑到循环通常需要一个计数器,而这个计数器出了循环就没什么用了。所以在表达式1的位置定义的变量,活动范围仅限于循环中,出了循环,它就无效了。
6. 循环嵌套
循环结构跟分支结构一样,都可以实现嵌套。
对于嵌套的循环结构,执行顺序是从内到外:先执行内层循环,再执行外层循环。




