首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C语言编程锦囊·连载46

问题阐述

死循环是指:程序无法退出或者无法进入下一次循环。那么什么情况会产生死循环呢?

专家解答

1.问题的产生

在C语言中常用3种循环语句,这些循环语句各有其特点,while和do…while经常用在循环次数不确定的场合;for被经常用来遍历数组和集合。在使用这些循环语句过程中,若其循环结束条件处理不当,则很可能产生死循环。下面看一个例子,代码如下:

#include

void main()

{

unsignedint i; /*定义无符号整型变量*/

for(i=10;i>=0;i--)

{

printf("%d ",i); /*输出*/

}

printf("\n"); /*输出回车*/

}

程序本意是将每次得到的计数变量的值输出出来,结果由于疏忽导致程序死循环,程序运行效果如图8.18所示:

2.问题分析与解决

for语句的循环结束条件是当条件表达式的值为false时。上面实例中的计数变量i被定义为unsigned类型,这样i>=0就永远成立。所以程序进入了死循环。

下面为另外两种常用的循环语句的判断条件:

qwhile语句的循环结束条件是当布尔表达式的值为false时。

qdo…while语句的循环结束条件是当布尔表达式的值为false时。

注意:使用do…while语句时要注意循环次数的判断,因为do…while语句是先执行循环体后进行判断。

解决本例的办法就是将计数变量i定义为int型。这样就不会出错了。程序的正确运行效果如图8.19所示。

说明:在实际的应用程序开发中,产生死循环的情况比较复杂,并不完全像本实例中的情况,但归根结底都是由循环结束条件处理不当造成的,下面将对这些方法进行详细的分析。

专家点评

在循环程序中应避免出现死循环,即应保证循环变量的值在运行过程中可以得到修改,并使循环条件逐步变为假,从而结束循环。

关于【C语言编程锦囊】,可能你还想知道:

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20171217B04BCF00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券