if (90<=score<=100)
90<=score<=100
这个算不算是表达式 ,我用在if (90<=score<=100)语句里面没有什么用 好像根本没有判断啊
90<=score<=100
这个算不算是表达式 ,我用在if (90<=score<=100)语句里面没有什么用 好像根本没有判断啊
2015-07-30
这样写不能实现你想要的逻辑,但这表达式本身是合法的复合表达式。
这个表达式由两个关系运算符组成,关系运算符是左结合的,故C语言是这样解释这个表达式的:
先看左边的90<=score,这个关系运算表达式的结果是布尔值:true or false
然后表达式就变成了 “前次布尔结果”<= 100,这还是一个关系运算表达式,前次的bool结果如果为ture就会自动转换为整型1,这样整个表达式就变成了 1 <= 100。同理,前次bool为false的话,整个表达式就成了 0 <= 100。
不管前面是0还是1,都小于100,所以整个表达式永远为true
按照你的逻辑,应该写成逻辑与表达式: 90 <= score && score <= 100
举报