Java交换变量-Java板块造梦空间论坛-技术交流-造梦空间论坛

Java交换变量

int num1 = 10;
int num2 = 20;
int num1 = 10;
int num2 = 20;
int num1 = 10; int num2 = 20;

 

已知num1=10,num2=20,让他们的值转换。

简单,实用,方法一

采用一个临时变量先储存其中一个值。

int temp = num1;
num1 = num2;
num2 = num1;
System.out.println("num1="+num1+"num2="+num2);
int temp = num1;
    num1 = num2;
    num2 = num1;
    System.out.println("num1="+num1+"num2="+num2);
int temp = num1; num1 = num2; num2 = num1; System.out.println("num1="+num1+"num2="+num2);

方法二

num1 = num1 + num2;
num2 = num1 - num2;
num1 = num1 - num2;
System.out.println("nun1="+num1+"num2="+num2);
num1 = num1 + num2;
    num2 = num1 - num2;
    num1 = num1 - num2;
    System.out.println("nun1="+num1+"num2="+num2);
num1 = num1 + num2; num2 = num1 - num2; num1 = num1 - num2; System.out.println("nun1="+num1+"num2="+num2);

优点:不需要新建一个变量,节省内测

弊端:①相加操作肯超出储存范围②有局限性(数值类型)

方法三

num1 = num1 ^ num2;
num2 = num1 ^ num2;
num1 = num1 ^ num2;
System.out.println("num1="+num1+"num2="+num2);
num1 = num1 ^ num2;
    num2 = num1 ^ num2;
    num1 = num1 ^ num2;
    System.out.println("num1="+num1+"num2="+num2);
num1 = num1 ^ num2; num2 = num1 ^ num2; num1 = num1 ^ num2; System.out.println("num1="+num1+"num2="+num2);

转为二进制,相同二进制进行^运算,1^1=0,0^0=0

不同二进制运算1^0=1,0^1=1

弊端:有局限性(数值类型)

请登录后发表评论

    • 小波的头像-造梦空间论坛造梦超级会员小波徽章-人气大使-造梦空间论坛等级-LV5-造梦空间论坛作者超级版主0
© 造梦空间论坛
❤富强❤