为了账号安全,请及时绑定邮箱和手机立即绑定

if (90<=score<=100)

90<=score<=100

  这个算不算是表达式 ,我用在if (90<=score<=100)语句里面没有什么用 好像根本没有判断啊

正在回答

4 回答

这样写不能实现你想要的逻辑,但这表达式本身是合法的复合表达式

这个表达式由两个关系运算符组成,关系运算符是左结合的,故C语言是这样解释这个表达式的:

  • 先看左边的90<=score,这个关系运算表达式的结果是布尔值:true or false

  • 然后表达式就变成了 “前次布尔结果”<= 100,这还是一个关系运算表达式,前次的bool结果如果为ture就会自动转换为整型1,这样整个表达式就变成了 1 <= 100。同理,前次bool为false的话,整个表达式就成了 0 <= 100

  • 不管前面是0还是1,都小于100,所以整个表达式永远为true


按照你的逻辑,应该写成逻辑与表达式: 90 <= score && score <= 100


3 回复 有任何疑惑可以回复我~

解释得很有道理.

0 回复 有任何疑惑可以回复我~

解释得很详细谢谢

0 回复 有任何疑惑可以回复我~

不算表达式,建议这么写

if(90<=score&&score<=100)


1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

if (90<=score<=100)

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信