if (90<=score<=100)

来源:4-16 分支结构之switch语句

feidudu

2015-07-30 21:45

90<=score<=100

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

写回答 关注

4回答

  • onemoo
    2015-07-31 10:08:35
    已采纳

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

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

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

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

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


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


  • edgex
    2015-10-30 14:06:02

    解释得很有道理.

  • feidudu
    2015-08-06 00:05:57

    解释得很详细谢谢

  • Perona
    2015-07-30 21:55:29

    不算表达式,建议这么写

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


C语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

926353 学习 · 20799 问题

查看课程

相似问题