困惑来自对基本概念的理解不到位。什么是语句(statement)?末尾带分号(;)的才是语句。if(b=false)的b=false带分号了吗?没有!所以它不是语句。而且,if()的括号里也不允许是语句。那么b=false是什么?它是表达式(expression)。表达式和语句有什么区别?表达式一定有一个值,语句则不一定,比如break;语句就没有值。b=false作为赋值表达式,它的值就是b被赋予的值,也就是false。所以if(b=false)等价于if(false),即判断为条件不成立,要执行else分支 |
|