一.前言
上面我们已经讲解了if、switch的分支语句,今天我们开始讲解关于C语言循环方面的知识。C语言提供了3种循环语句(while,for,do while),接下来我们开始讲解关于while语句。
二.正文
1.while语句
1.1while
关于while语法形式:
1.2 while语句的执行流程:
while循环先判断表达式,如果表达式不为0(为真),后执行语句,如果表达式为0(为假),不执行语句且跳出while循环。
1.3 while循环的具体实践:
在屏幕上打印1~10的数字:
2.for语句
2.1for
关于for语句的语法形式:
2.2关于for语句的循环流程图:
for循环与while循环在语句执行上并没有差别,都是先判断语句中表达式的真假,如果表达式不为0即执行下面的语句,反之表达式的结果为0,则不执行下面的语句,并且退出for循环。
但是在在处理for循环中continue语句的时候,while与for循环执行的结果有些差异,这些我们会在本文的后面有所介绍。
2.3 for语句的具体实践:
在屏幕上打印1~10之间的数字:
通过while与for关于同一问题“在屏幕上打印1~10之间的数字”的题你可能已经意识到,通常在不涉及continue语句的情况下,while循环和for循环并无太大差别,但是我们通常会使用for循环,因为在一些比较复杂的代码中用while循环写的话,整体代码会显得过于分散,而使用for循环编写的话代码比较显得紧凑,也易于后面代码的维修。
3. do while语句
3.1 do while
关于do while的语法形式:
注意在do while循环中while(表达式)后有一个分号,而while循环中while(表达式)后没有任何符号。
3.2 do while语句的循环流程图
值得注意的的是,do while循环不同于前两种while循环和for循环,while循环与for循环都是先执行判断语句后执行循环体中的语句,而do while循环则是恰恰相反,它是先执行语句,后判断 判断条件中的表达式是否为真。如果为真,则回到上面继续实现语句,然后再判断条件,以此循环往复直到判断语句中的表达式不成立(为假)跳出do while循环语句。即再do while循环语句中循环体中的语句至少执行一次。
3.3 do while循环的具体实践:
再屏幕上打印1~10的数字:
细心的小伙伴已经发现while(i<=9)和之前while循环和for循环中判断语句“while(i<=10)”不一样,这样改是因为do while 循环优先执行循环体中的语句即“i++”和“printf("%d\n",i)”,因此当i=9的时候,回到i++语句中i=10,并经过printf打印,此时i=10已经不满足while表达式“i<=9”的情况所以代码结果才能正常输出“1,2,3,4,5,6,7,8,9,10”的结果。否则如果表达式还是“i<=10”的话代码的结果就是“1,2,3,4,5,6,7,8,9,10,11”了,与题目要求不符。
4.break语句和continue语句
在循环执行的过程中,如果某些状况发生的时候,需要提前终止循环,那么这个时候就需要break和continue这两个关键字来帮助我们实现啦。
1:break的作用是永久的终止循环,只要break被执行,就会直接跳出循环,继续向后执行。
2:continue的作用是跳出本次循环continue后边的代码,在for循环和while循环中有所差异。
4.1while循环中的break与continue
(i):关于while循环中的break
通过以上例子可以看出,当i从1加到5的时候满足了if(i==5)的条件,执行语句break直接跳出整个while循环。
(ii):关于while循环中的continue
如图所示将break换成continue后,当if(i==5)被满足的时候,下面的代码“printf("%d\n",i)”与"i++"都不再执行,这是continue直接跳过了这两条语句,重新回到while(i<=10)的判断条件中,i一直等于5,所以程序陷入了死循环。
4.2 for循环中的break和continue
(i)for循环中的break
(ii)for循环中的continue
for循环中的continue与while循环中的continue不同,目录中有对两者区别的比较,有兴趣的小伙伴直接点击目录,找到下方关于“关于在三种循环while、for,while中对于break和continue的讨论”即可。
4.3 do while循环中的break与continue
(i):do while循环中的break
(ii):do while循环中的continue
4.4关于在三种循环while、for,while中对于break和continue的讨论
对于三种循环来说,break的作用都是永久的直接终止循环,并没有上面特殊的,而对于continue的执行过程中,while循环与do while循环中是一样的,而这两个循环与for却有着不同的continue执行过程,请看vcr
如图所示for循环中continue可以让执行程序跳到循环的调整部分,即文中的i++。而while循环中的continue可以让执行程序跳到循环的判断条件中,即while(i<=10).
三.总结
最后的最后感谢观看此文的小伙伴,下次再见啦!!!