©作者:凡人编程传
©系列:C语言初阶(适合小白入门)
©说明:以凡人之笔墨,书写未来之大梦
这一节我们介绍C语言中用的最多的循环语句——for语句,他的形式与while语句可有点不太一样,在while语句的基础上可谓是进一步升华,接下来就听我娓娓道来吧。
☀for语句的基本结构
for(表达式1;表达式2;表达式3;)
语句;
for语句这样的结构,表达式1对应的是初始化循环变量,表达式2则对应的循环判断条件,表达式3是循环变量的更新,这样的集中管理与while语句的分散管理前者显得更容易控制政哥哥循环结构。
for语句的执行流程
for语句的表达式执行流程与while语句也有不一样的地方,请看下图。
如图可知,for语句先是执行了表达式1(初始化循环变量),接下来执行表达式2(循环判断条件),接着进入循环体执行语句,最后执行表达式3(循环变量的更新), 其中注意:若循环体中有break可以让整个循环直接结束;或者有continue是让continue后面的语句都不执行直接开始下一次循环。
☀for语句的基本使用
实例1
- 输出0 -9
#include<stdio.h>
int main()
{
int i = 0;
for (i = 0; i < 10; i++)
{
printf("%d ", i);
}
}
运行结果:
这几行小小的代码就能输出这么几个数,可见for循环的便捷性
实例2
#include<stdio.h>
int main()
{
int i = 0;
for (i = 0; ; i++)
{
printf("%d ", i);
}
}
运行结果:
从这段代码的结果(死循环),可以列出以下知识点。
1.for语句的3个表达式可以省略,但是表达式2(循环判断条件)省略,则会导致死循环
此外:请看
for语句中的3个表达式可以任意邵略,但是用于分隔表达式的分号;不能省略。
☀笔试题真题练习
上代码:
#include<stdio.h>
int main()
{
int i = 0;
int j = 0;
for (;i < 3; i++)
{
for (; j < 3; j++)
{
printf("hello\n"); //结果打印几个hello?
}
}
return 0;
}
运行结果:
为什么是3个呢?别急,听我慢慢说。
首先,我们在循环外面初始化了2个循环控制变量。然后进入外层for循环发现没有表达式1,直接跳过去判断表达式2,此时i=0,那么i<3为真,进入循环体执行内层for循环,内层循环的循环控制变量也是在外面就初始化了,所以直接跳过执行表达式2,此时j=0,j<3为真,然后进入内层循环体打印1个hehe,接着执行表达式3j++,此时j=2,再次执行表达式2,j<3为真,进入内层循环体输出第二个hehe,再次执行表达式3j++,促成j=3,j<3为假,内层循环结束,也就是外层循环体结束。外层循环接着执行表达式3i++,此时i=1,I<3为真,则执行循环体,再次进入层循环,# 此时内层循环表达式1为空不进行j=0这一个操作,则执行表达式2,j<3,此时j这个的变量并没有重新初始化为0,所以j=3,j<3这个条件为假结束内层循环…后面的过程一样直到i=3外层循环结束,那么整个循环结束。
这道题告诉我们,尽量不要省略for循环的表达式否则会造成意想不到的结果,除非你对for循环的执行流程非常熟练,能做到游刃有余。
☀总结
1.for语句的表达式可以任意省略,但是是在对for语句非常熟悉的前提下。
2.用于分隔for语句表达式的分号不能省略。
好了for语句的知识点就是这些,但是看完了要去多实践,才能真正把知识学到手。希望你有所收获!