【Java学习】一个&和两个&&的区别(4)

本文深入解析了逻辑运算符(&、&&、|、||)的区别及使用场景,通过实例展示了它们如何影响变量的值。同时,介绍了异或运算符(^)的工作原理及其在值交换中的巧妙应用。

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

&和&&,|和||区别

逻辑运算符描述
&运算两端都是true,结果才是true,那么只要有任意一端false,结果为false
&&一旦运算除左端为false,那么右端就不运算了
|运算两端任意一段为true,结果为true,只有两端都为false,结果为false
||一旦运算左端为true,结果就为true,都断不用计算
^异或,按照对应二进制,按位异或比如3^9为10,即0b0011^0b1001 = 0b1010=10

不看答案自己做

//题一
int x = 1,y = 1;
if(x++==2 & ++y==2)  
{
	x =7;
}
System.out.println("x="+x+",y="+y);  

//题二
int x = 1,y = 1;
if(x++==2 && ++y==2)
{
	x =7;
}
System.out.println("x="+x+",y="+y);

//题三
int x = 1,y = 1;
if(x++==1 | ++y==1)
{
	x =7;
}
System.out.println("x="+x+",y="+y);


//题四
int x = 1,y = 1;
if(x++==1 || ++y==1)
{
	x =7;
}
System.out.println("x="+x+",y="+y);



答案1
x=2,y=2

答案2
x=2,y=1

答案3
x=7,y=2

答案4
x=7,y=1

异或

利用结论:一个数被另一个数异或两次,还是原来,可以用来值交换

package com.jingfei.csdn;

public class Yihuo {
    public static void main(String[] args) {
        int a = 3;
        int b = 9;
        int c = a ^ b;
        //0011
        //1001
        //1010 = 10
        System.out.println(c);
        System.out.println("-------------");
        //利用异或交换a,b的值,不需要第三方变量
        a = a^b;
        b = a^b;//(a^b)^b = a ;  得b=a
        a = a^b;//(a^b)^a; 得a = b;
        System.out.println(a);
        System.out.println(b);

    }
}
10
-------------
9
3

-------------------------------------------
谢谢

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值