首页 > 其他 > 详细

2016.7.5 记项目过程中犯的一个从未察觉的低级错误

时间:2016-07-06 21:40:06      阅读:122      评论:0      收藏:0      [点我收藏+]

  今天在项目中遇到了一个很奇葩的问题,具体什么问题就不说了,找了一下午实在找不出来,百般无奈之时,看到了自己敲的一条不太顺眼的代码:

                                                                       if(0<i<31)

心想这样写好像不好,于是将其改成if((i>0)&&(i<31)),编译调试,之前出现的问题居然奇迹般的消失了。经过和同学探讨,得出以下别人都知道的结论:

if(0<i<31),程序首先计算0<i,i的范围是0~51,当i>0时,(0<i) == true,在我使用的编译器里面,认为true == 1,于是接着计算(1)<31,显然得到结果依然是true,那么只要i>0,不管i是不是小于31的,if里面的条件都将为真,这样就导致了程序出现意想不到的效果。

2016.7.5 记项目过程中犯的一个从未察觉的低级错误

原文:http://www.cnblogs.com/wan0807/p/5647957.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!