if else语句中,if后面的表达式(i<20)和(10<i<20)有什么区别吗
初学,因为发现两种情况对计算结果有很大的差别
详情看图(if后面的表达式)
不知原因在哪
i < 20 很好理解,比如i=19为真,i=20则为假
10<i<20就复杂一点,实际上这样写在99.9%的情况下逻辑上是错误的,另外0.1%是你确实知道你要干什么。
10<i<20等价于(10<i)<20,在c语言里,10<i的值要么是0(假)要么是1(真),因为无论是0还是1都的确小于20,所以这个逻辑表达式的值永远是真。
你这里需要的是:10 < i && i < 20
10<i<20就复杂一点,实际上这样写在99.9%的情况下逻辑上是错误的,另外0.1%是你确实知道你要干什么。
10<i<20等价于(10<i)<20,在c语言里,10<i的值要么是0(假)要么是1(真),因为无论是0还是1都的确小于20,所以这个逻辑表达式的值永远是真。
你这里需要的是:10 < i && i < 20
温馨提示:答案为网友推荐,仅供参考
第1个回答 2018-02-19
表示10<i<20不要这么打,要用且"&&"符号。10<i<20的意思和你想的不一样,你可以试一下令a=10<i<20,看看a是不是一直等于1。
第2个回答 2018-02-19
限定的区域不同,计算结果也会不同追问
能在详细点吗,还是不太懂
第3个回答 2018-02-19
c不能连等 图一进入了第二种情况的运算
第4个回答 2018-02-19
可能