逻辑运算绕的我有点晕

 class richang{
    public static void main(String[] args){
        boolean x = true;
        boolean y = false;
        short z = 42;
        if(y == true)//false
        if((z++==42)&&(y=true))z++;//false
        if((x=false)||(++z==45)) z++;/*(求大佬告诉我这一行的逻辑
                                        ,我已经绕蒙了)*/
        
        System.out.println("z=" + z);

    }
}    


![img](https://img-mid.csdnimg.cn/release/static/image/mid/ask/664898932246157.png "#left")

if((z++==42)&&(y=true))z++;属于 if(y == true)的代码块,因为y是false,所以if(y == true)不成立,if((z++==42)&&(y=true))z++;这个代码段不执行。
执行 if((x=false)||(++z==45)) z++;
过程如下:
(1)x=false
(2)++z, z变成43
(3)z==45不成立,结果是false
(4)x || false ,两个false或运算,结果还是false ,所以if((x=false)||(++z==45)) 这个if不成立,z++不执行。

所以,最后z的值是43