1. 前情引入
C语言总共提供了三种循环语句
分别是while循环,for循环,do while循环
首先讲解while语句,大家可以通过while语句作为入门循环的第一个循环体系,因为它的执行流程和for循环十分类似
2. while循环
2.1 while的语法结构
while的语法结构跟for循环十分类似
举个例子来说明
上面两个,都是在括号里面写表达式,表达式输出结果为1(非零代表真),所以便执行了接下来的
不同的是,while循环语句一旦一直为真,便会无休止的打印hello,无法结束
其余语法规则与if语句基本一致
2.2 while语句的执行流程
首先判断while循环括号里面的输出值为0还是非0,为真(非零)便继续执行下面的语句,如果为假(0),那么便相当于之前switch语句里面提到的break(出口)进行跳出,结束循环,从而避免了一个循环体系无休止的进行下去
2.3 while循环的作用
我们在以后很多地方,都会用到循环体系,循环可以说是C语言学习中不可或缺的部分
无论是在各种竞赛还是在日常学习以及学校的考试中,循环的重要性是不言而喻的
我们这里先来实践循环一个最粗浅的应用
使用while循环打印1到10的数字在屏幕上
通过基本的while循环的应用,我们便成功打印出了1到10的数字出来
2.4 while循环的小练习
随机输入一个正整数,逆过来打印这个正整数的每一位
输入1527,打印7 2 5 1
那么思考一下,我们应该如何实现这样的一个功能呢?
很明显我们需要先从个位开始打印,慢慢往更高位进行打印,那么在最开始我们就需要用到%(取余数操作符)
任何一个数%10,得到的一定是它的个位数
接下来我们只需要继续/10,因为整型变量除以10的时候,是会直接去除小数保留整数的,所以我们不用担心会出现小数,这个时候,原来的十位就变成了现在的个位,继续进行%10的操作即可打印出原本的十位数,这样循环进行下去,最后逆着打印的功能就实现了
上面就成功逆序打印出了10086
3. for循环
3.1 for循环的语法结构
首先,值得强调的是for循环在三种循环结构中是使用的最多的那一个
在我们后续介绍for循环的语法规则的时候大家就能明白为什么是使用最多的那一个
for循环使用语法如下
for(表达式1;表达式2;表达式3)
表达式1用于循环变量的初始化
表达式2用来作为是否结束循环的条件
表达式3用于每次循环的过程中变量的调整
例如,我们现在用for循环来打印1到10的数字,观察一下与while循环有何异同之处
可以观察出同样功能的代码,用for循环比while循环更简略一点,并且在while循环中同样有着for循环所需要的三个表达式
都是需要首先将变量进行初始化,然后设定循环是否能够结束的条件,最后进行每次循环对变量的调整
所以for循环从某种程度上来讲,就是while循环的简略版
3.2 for循环的执行流程
值得注意的是,表达式1(变量的初始化)只执行一次,而表达式2和表达式3将会循环执行很多次,直到循环最终停止
3.3 for循环的小练习
计算1到100之间三的倍数的数字之和
那我们首先先需要判断出1到100的三的倍数,通过for循环首先出现1到100的数字,然后通过if语句判断其是否是三的倍数,然后进行相加
3.4 for循环中的break和continue
break正如switch语句中的break(出口)是一样的意思,一旦执行到break语句便彻底跳出了这个循环,正如下面这个代码中,我们在打印1到10的数字中加入了break
在break发挥作用的时候,for循环语句打印完五之后便彻底跳出了循环
那continue的作用顾名思义,根据英文意思继续,意思就是继续执行,那我们如果把上面的break替换成continue会如何执行呢?
大家可以看到,在1到10的过程中,唯独少了一个5,这是因为continue虽然是继续的意思,但是是跳转到循环的第三个表达式部分,随后继续执行下面的循环,所以continue语句下面的语句是不会被执行的
4. do while循环
4.1 do while循环的语法结构
语法结构如下:
do
语句;
while(表达式);
while和for这两个循环都是先判断是否满足循环条件,才会选择进入循环还是不进入循环
但是do while循环则是先进入循环体,执行循环语句,然后再执行while后的判断表达式,表达式为真(非零)则进行下一次,表达式为假(0),则不再继续进行循环
4.2 do while循环的执行流程
以下是三个循环的执行流程对比
do while语句需要先执行上面的语句,在执行完前面的语句之后才会去判断表达式是否继续循环
也就是说:在do while语句之中,循环体是至少要执行一次的,这是它的特殊之处
其余语法与while循环基本一致