工作小记

运算符 | 和 ||,& 和 &&到底区别在哪里

2020-04-06  本文已影响0人  叫子非鱼啊

如何区分运算符 | 和 ||,& 和 &&?

我们只要记住一下两点就好了。

什么是与运算和或运算?

用了那么多的图,给个来源吧(需科学上网) https://t.me/ovov1234

实践的真知
上面已经说了,运算符的作用和在程序中的执行顺序。

先来看一下 | 和 || 的运算情况
你觉得下面的这段代码会输出怎样的内容呢?

    public static void main(String[] args) {
        int i = 1;
        int j = 1;
        
        //  ||运算执行判断
        if (i == 1 || ++j == 1) {
            System.out.println("第一个成立进行||运算后 ---- 执行方法");
        }
        System.out.println("||运算后 j = "+j);
        
        // |运算执行结果
        if (i == 1 | ++j == 1) {
            System.out.println("第一个成立进行|运算后 ---- 执行方法");
        }
        System.out.println("|运算后 j = "+j);
    }

当然这都在第一个条件成立的情况下判断第二个语句是否会执行。(如果第一个条件不成立,两个会是相同的结果,没有区别)

image.png

由此可见,||运算在第一个条件成立时,直接执行if中的语句,是不会执行第二条语句的。|运算则是,不管第一个是否成功,都会去执行第二个语句,所以导致j+1=2

同理,对上面的代码进行修改。使用&和&&进行判断会是什么结果。

    public static void main(String[] args) {
        int i = 1;
        int j = 1;
        
        //  &&运算执行判断
        if (i != 1 && ++j == 1) {
            System.out.println("第一个不成立进行&&运算后 ---- 执行方法");
        }
        System.out.println("&&运算后 j = "+j);
        
        // &运算执行结果
        if (i != 1 & ++j == 1) {
            System.out.println("第一个不成立进行&运算后 ---- 执行方法");
        }
        System.out.println("&运算后 j = "+j);
    }

运行结果如图所示

image.png

由于第一个条件已经不满足了,所以if中的语句是不会执行的。但使用&运算时,程序仍然会判断第二个条件,所以j+1。

总结
既然已经知道了程序中执行的区别,那如何该避免他们出现错误呢?

程序的世界中很单纯,你给它什么样的指令,它就怎么的去执行,严格执行但不会考虑对错。


想看电影关注我的公众号:电影资源集(支持输入电影名称自动回复了)

喜欢就点个👍吧

上一篇下一篇

猜你喜欢

热点阅读