程序结构
在C语言程序中,一共有三种程序结构:顺序结构、选择结构(if和switch分支结构)、循环结构;
顺序结构:从头到尾一句接着一句的执行下去,直到执行完最后一句;
选择结构:到某个节点后,会根据一次判断的结果来决定之后向哪一个分支方向执行,由if、switch实现,前面的章节我们已经学习过。
循环结构:循环结构有一个循环体,循环体里是一段代码。对于循环结构来说,关键在于根据判断的结果,来决定循环体执行多少次,由while、for和do while来实现。
while循环
while循环的一般形式为:
意思是,先计算“表达式”的值,当值为真时(表达式的值非0即是真),执行“语句块”;执行完“语句块”,再次计算表达式的值,如果为真,继续执行“语句块”……,这个过程会一直重复,直到表达式的值为假,就退出循环,执行while后面的程序代码。
循环也常常出现在我们的生活中,以用餐为例:
人们的用餐就是一个循环,“没有吃饱并且还有饭菜”是循环首部要判断的表达式,它的取值会随着循环次数的增加而改变,“夹一把菜”、“吃一口菜“、吃一口饭”是循环体,随着循环次数的增加,一定会吃饱或者饭菜被吃完,循环结束。
do-while循环的一般形式为:
表达用餐的过程如下:
do-while先执行一次循环,然后再判断表达式的值,如果为真,再执行循环体,如此重复去下。
实际编程中使用while循环较多,我从来不用 do-while,在接下来的章节中就不讲它了。
continue和break两个关键字用在循环体中,用于处理异外情况。
continue用于跳转到循环的首部。
break用于跳出循环。
继续以用餐为例:
用餐的循环体一般来说有夹菜、吃菜、吃饭三条语句,因为胃口不好,可能跳过吃饭语句,只吃菜。
各位在用餐的时候,眼睛应该会看着饭菜,应该也会判断是否有虫子,如果有虫子,估计也会跳出循环体。
如果不知道循环的次数,以达到某个目标为目的比较合适用while,例如:利用一个循环,把用户每次从键盘输入的数据累加起来,如果总和超过了5000,循环结束。
示例(book31.c)
运行结果
for循环
for循环的一般形式为:
1)for循环开始时,会先执行语句1,而且在整个循环过程中只执行一次语句1。
2)接着判断表达式的条件,如果条件成立,就会执行循环体中的语句块。
3)循环体语句块执行完毕后,接下来会执行语句2。
4)重复执行第2)步和第3),直到条件不成立就结束for循环。
注意:
1)在for循环中,语句1;表达式;语句2都可以空,for (;;)等同于while (1)。
2)continue和break两个关键字也可以用在循环体中。
for循环应用于事先知道循环总次数的场景,一般与计数器或数组结合一起使用。例如:利用一个循环,把1到100之间的数值累加起来。
示例(book33.c)
运行结果
for循环嵌套
我们来看一个生活中的例子,某宾馆有3层,每层有4个房间,打扫房间的阿姨利用了循环嵌套来安排工作。
示例(book35.c)
运行结果
循环的选择
for循环可以实现while循环的功能,while循环也可以实现for循环的功能,没有那个更好的说法,要看应用场景。
for循环应用于事先知道循环总次数的场景,一般与计数器或数组结合一起使用。
while循环事先不知道循环的总次数,以达到某个目标为目的循环场景,例如用餐,没人关心过一顿饭要吃多少口,吃饱或没东西可吃是循环结束。
死循环
死循环是指循环的条件永远为真,并且循环体中也没有满足跳出的条件,死循环有两种写法:
出现死循环的情况有两种:1)程序的逻辑错误;2)程序员故意为之。第一种情况就不说了,程序员自己去解决,第二种是程序功能的需要,但是程序员仍有其它的办法让程序中止,这么说可能难以理解,没关系,在以后的课程中将会介绍。
如果你的程序不小心进入了死循环,可以用Ctrl+c中止。
应用技巧
1)for循环的计数器,习惯的写法是for (ii=0;ii<=10;ii++),表示从0、1……到10,从小到大的方式计数,但是在某些应用场景中,可能需要从大到小的方式计数,for (ii=10;ii>=0;ii--),也是可以的。
2)for循环的计数器,习惯的写法是for (ii=0;ii<=10;ii++),表示从0、1……到10,从小到大一次增加1的方式,但是在某些应用场景中,计数器不一定是增加ii++,ii=ii+2也是可以的。
版权声明
C语言技术网原创文章,转载请说明文章的来源、作者和原文的链接。
来源:C语言技术网(www.freecplus.net)
作者:码农有道
如果这篇文章对您有帮助,请点赞支持,或在您的博客中转发我的文章,谢谢!!!
如果文章有错别字,或者内容有误,或其他的建议或意见,请您留言指正,非常感谢!!!