JiaMing996 2022-01-15 17:46 采纳率: 0%
浏览 37

逻辑运算绕的我有点晕

 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")

  • 写回答

1条回答 默认 最新

  • 关注

    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

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 1月15日