"&" , "&&" 和 "|" , "||" 的区别

1.&和&&的区别

共同点:

两者都可以用作逻辑与运算符and,当运算符两边的表达式都为true时候整个结果才是true,但当运算符有一边是false时,那么整个结果就是false。

代码演示:

		if(true & false) {
			System.out.println("true & false");
		}
		
		if(true && false) {
			System.out.println("true && false");
		}
		
		if (true & true ) {
			System.out.println("true & true");
		}
		if(true && true) {
			System.out.println("true && true");
		}

结果是:

true & true
true && true

由结果我们可以知道&和&&都可以当做逻辑与运算符。

区别:

& 按位与操作,按二进制位进行"与"运算。
&&具有短路功能,就是&& 先算 &&运算符的左侧表达式,若左侧为 false 那么右侧就不运算了。而&必须将两侧都运算出来,才会计算出最终的结果。

& 按位与操作:
0x01 & 0x0f =>1
0x02 & 0x0f =>2

&&的短路功能:

public class TandF {

	public static boolean tAndF( ) {
		System.out.println("我执行了!");
		return true;
	}	
	
	public static void main(String[] args) {
		System.out.println(false & tAndF());
		System.out.println("-------------");
		System.out.println(false && tAndF());				
	}
}

结果是:

我执行了!
false
-------------
false

由上面的结果我们知道当使用&时候必须执行&两边的表达式,而使用&&时,若左边是false时,就直接得到false。

2. | 和 || 的区别

| 和 || 的共同点:
| 和 || 的区别和上面的同理,都可以作为逻辑或运算符;


| 和 || 的区别:

| 还可以作为按位或的运算符,运算规则与按位与同理;
|| 同样有类似短路的功能,即第一个条件若为true,则不计算后面的表达式。

在判断语句中,`|`和`||`都可以实现“或”的功能,区别在于`|`两边都会运算,而`||`只有在左侧为false时才会运算右侧。因此,从效率上来说,推荐使用`||`。 对于`|`和`||`的运算方法总结如下: - 只要`|`前面为false,不管`|`后面是true还是false,都返回`|`后面的值。 - 只要`|`前面为true,不管`|`后面是true还是false,都返回`|`前面的值。 而对于`&`和`&&`,它们都可以实现“和”的功能。区别在于`&`两边都会运算,而`&&`只有在左侧为true时才会运算右侧。 对于`&`和`&&`的运算方法总结如下: - 只有当两个条件均为真时,`&`和`&&`的结果才为真。效果等同于and。 - 只要有一个条件为真时,`&`和`&&`的结果就为真。效果等同于or。 总之,`|`和`||`都可以实现“或”的功能,`&`和`&&`都可以实现“和”的功能,但它们在判断条件和运算顺序上有所不同。请根据具体需求选择合适的运算符。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [&,|和&&,||的区别关系及用法实例](https://blog.csdn.net/weixin_42228895/article/details/123056470)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [&&、||、&、|的功能及区别整理](https://blog.csdn.net/u014029795/article/details/103196459)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值