这段代码结果46的来龙去脉?
为什么结果会是46
解释每段代码的含义
public static void main(String[] args) {
boolean x = true;
boolean y = false;
short z = 42;//z=42
if((z++==42)&&(y=true))z++;//z++==42此时z还没有完成自增,所以判断时仍然为42,条件满足,
//后面的y=true是一个赋值操作,赋值完成后判断,所以整个条件都满足,则z自增一次为43,执行完成后条件z++==42也会完成一次自增44
if((x=false)||(++z==45))z++;//同上面,x=false也是赋值操作,++z==45,前置++优先级高,完成自增为45后判断,满足条件,则z再自增一次为46
System.out.println("z=" + z);
}