java &和&& |与|| 的区别

来源:互联网 发布:淘宝商品图片拍摄技巧 编辑:程序博客网 时间:2024/05/18 03:17

&和&&   |和||

区别:(1)& 有按位与和逻辑与的功能,&& 只有逻辑与功能

逻辑与:

左右两边只要有一边为false 结果就是false

按位与:

运算符两边以二进制的形式进行与操作

(2)&&比&要稍微快一些

&无论左边是true或false 右边都要继续运算
&& 当左边是false是,右边不运算

|和||的区别于&和&&的区别相对应,不同的是||运算符只要左边的结果为true,右边就不在运算

例题

class Test {    public static void main(String[] args) {        int a = 3;        int b = 4;        if ((a>b&(a++)>b&&(--b)<a)|(b++)<=(a--)) {            System.out.println("判断结果为true, a=" + a + ",b=" + b);        } else {            System.out.println("判断结果为false, a=" + a + ",b=" + b);        }    }}

A.判断结果为true, a=3,b=5 B.判断结果为true, a=3,b=4

C.判断结果为false, a=3,b=5 D.判断结果为false, a=4,b=4

答案 :A

分析:

(a>b&(a++)>b&&(--b)<a)|(b++)<=(a--)

先进行a>b的运算,结果为false, 然后计算&的右边(a++)>b,结果为false,a=4 所以&运算的结果为false

接下来是&&运算,&&运算只要左边是false就不在进行右边的运算

然后进行|右边的运算,(b++)<=(a--),结果为true,b=5,a==3

原创粉丝点击