C语言循环

   

程序结构

       在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

作者:码农有道

如果这篇文章对您有帮助,请点赞支持,或在您的博客中转发我的文章,谢谢!!!

如果文章有错别字,或者内容有误,或其他的建议或意见,请您留言指正,非常感谢!!!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

C语言技术网-码农有道

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值