Java中运算符“|”和“||”以及“&”和“&&”区别

本文详细解析了Java中逻辑运算符“|”、“||”、“&”和“&&”的区别与应用。通过具体代码示例,阐述了短路运算符与非短路运算符在条件判断中的行为差异,以及它们如何影响程序的执行效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.“|”运算符:不论运算符左侧为true还是false,右侧语句都会进行判断,下面代码

 

public class TestOperator {
	
	private static int j = 0;
	 
    private static Boolean methodB(int k) {
        j += k;
        return true;
    }
 
    public static void methodA(int i) {
        boolean b;
        b = i < 10 | methodB(4);
 
    }
 
    public static void main(String args[]) {
        methodA(0);
        System.out.println(j);
    }

}

 打印结果:4

 

 

2.“||”运算符:若运算符左边为true,则不再对运算符右侧进行运算,如下代码:

 

public class TestOperator {
	
	private static int j = 0;
	 
    private static Boolean methodB(int k) {
        j += k;
        return true;
    }
 
    public static void methodA(int i) {
        boolean b;
        b = i < 10 | methodB(4);
        b = i < 10 || methodB(8);
 
    }
 
    public static void main(String args[]) {
        methodA(0);
        System.out.println(j);
    }

}

 打印结果:4,说明“||”运算,左边为true后就不会再执行右边,而“|”运算,左边为true后依然会执行右边。

 

 

3.&运算符与|运算符类似:不论运算符左侧为true还是false,右侧语句都会进行判断:

 

public class TestOperator {
	
	private static int j = 0;
	 
    private static Boolean methodB(int k) {
        j += k;
        return true;
    }
 
    public static void methodA(int i) {
        boolean b;
        b = i > 10 & methodB(4);
 
    }
 
    public static void main(String args[]) {
        methodA(0);
        System.out.println(j);
    }

}

 打印结果:4,说明&运算符左侧为false,单依然会运行右侧语句。

 

 

4.“&&”运算符与“||”运算符类似:若运算符左侧为false则不再对右侧语句进行判断:

public class TestOperator {
	
	private static int j = 0;
	 
    private static Boolean methodB(int k) {
        j += k;
        return true;
    }
 
    public static void methodA(int i) {
        boolean b;
        b = i > 10 & methodB(4);
        b = i > 10 && methodB(8);
 
    }
 
    public static void main(String args[]) {
        methodA(0);
        System.out.println(j);
    }

}

 打印结果:4,说明&&运算符左侧为false则不再对右侧语句

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值