本帖最后由 鲍阳 于 2015-3-13 14:33 编辑
觉得你这句不对啊。照着你的逻辑,如果if外面出现相同的xx语句,那就怎么怎么判断。我把boolean m=true换成int x=5,if括号里换成x=6,按你说的就该能判断执行,事实上报错了:不兼容的类型;把if(m=false)换成if(false=m)也报错,意外的类型,false处需要变量找到值,说明不是把=当成==了;估摸着真实情况是:先对括号里进行计算,尽管是个赋值操作不是判断,但是这个变量的值刚好是boolean型的,刚好符合要求;就好像if(5+3>4),虚拟机遇到这种不能一眼望到底的式子会先计算出个最终结果,再来判断;而if(x=5)化成if(x)后也不符合要求 |