码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2016-07-06 21:40:25      阅读:128      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!