java编程两个变量交换_Java 实现两个整数变量的交换

class OperatorTest {

public static void main(String[] args) {

int a = 10;

int b = 20;

System.out.println("a:"+a+",b:"+b);

//方式1:使用第三方变量(开发中常用的)

/*

int c = a;

a = b;

b = c;

System.out.println("a:"+a+",b:"+b);

System.out.println("------------");

*/

//方式2:用位异或实现(面试常有用)

//左边:a,b,a

//右边:a ^ b

/*

a = a ^ b;

b = a ^ b; //a ^ b ^ b = a

a = a ^ b; //a ^ b ^ a = b

System.out.println("a:"+a+",b:"+b);

*/

//方式3:用变量相加的做法 :有局限 a+b超出int的范围就不行了

/*

a = a + b; //a=30

b = a - b; //b=a+b-b=10

a = a - b; //a=a+b-a=20

System.out.println("a:"+a+",b:"+b);

*/

//方式4:一句话搞定

b = (a+b) - (a=b); //b=30-20=10,a=20

System.out.println("a:"+a+",b:"+b);

}

}

https://www.cnblogs.com/wihainan/category/894809.html

Java中,实现两个整型变量数值交换可以通过以下几种方式完成: 1. 使用临时变量: 这是一种最直接的方法,通过引入一个临时变量来帮助完成数值交换。 ```java int a = 5; int b = 10; int temp = a; // 临时变量保存a的值 a = b; // 将b的值赋给a b = temp; // 将临时变量temp的值(原本a的值)赋给b ``` 2. 不使用临时变量(加减法): 不通过引入临时变量的方式,可以直接利用加减法来交换数值,但是这种方法在数值过大时可能会导致整型溢出的问题。 ```java int a = 5; int b = 10; a = a + b; // 先将a和b相加的结果赋给a b = a - b; // 再将a中的值(a和b的和)减去b的原值赋给b a = a - b; // 最后将新的a值(a和b的和)减去新的b值(原a的值)赋给a ``` 3. 不使用临时变量(异或法): 使用异或运算符(^)也可以实现不引入临时变量交换,这种方法不会导致溢出问题,但要注意异或运算只适用于整数类型。 ```java int a = 5; int b = 10; a = a ^ b; // a和b进行异或运算,结果赋给a b = a ^ b; // 将a的值(a和b的异或结果)与b进行异或运算,结果赋给b a = a ^ b; // 将a的值(a和b的异或结果)与新的b值(原a的值)进行异或运算,结果赋给a ``` 在实际编程中,推荐使用第一种方法,因为它没有额外的限制和潜在的风险。第二种和第三种方法虽然在某些情况下节省空间,但需要注意溢出和数据类型限制的问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值