交换变量a,b的值(java)

25428455 / 2023-07-29 / 原文

  • 方法1:引入中间变量
int a = 10;
int b = 20;
int temp = a;
a = b;
b = temp;
System.out.println("a = " + a + ",b = " + b); //a = 20,b = 10
  • 方法2:利用赋值符号 =
int a = 10;
int b = 20;
a = b + (a-(b = a));
System.out.println("a = " + a + ",b = " + b); //a = 20,b = 10
  • 方法3:利用位运算符 ^ ,异或运算
int a = 10;
int b = 20;
a=a^b; //相同则为0,不同则为1。首先判断a与b各位是否相同,将结果储存在a中bab
b=a^b; //如果a中某一位是0,则说明初始a与初始b在该位数值相同,则10-->1,00-->0,将b该位中的值保留,若a中某一位是1,说明初始a与初始b在该位数值不同,11-->0,01-->1,将b中该值取反,最终得到a的值,并赋给b
a=a^b;//此时b等于初始a的值,对其进行相同操作,若某位初始a与初始b相同则保留初始a中该位的值,若某位初始a与初始b不同,则对初始a中该位取反,使初始a的值变为初始b并赋给a
System.out.println("a = " + a + ",b = " + b); //a = 20,b = 10
  • 方式4:使用加法运算保留两变量的信息
int a = 10;
int b = 20;
a = a + b;
b = a - b;
a = a - b;
System.out.println("a = " + a + ",b = " + b); //a = 20,b = 10
  • 方式5:使用减法运算保留两变量的信息
int a = 10;
int b = 20;
a = a - b;
b = a + b;
a = b - a;
System.out.println("a = " + a + ",b = " + b); //a = 20,b = 10
  • 方式6:使用乘法运算保留两变量的信息
int a = 10;
int b = 20;
a = a * b;
b = a / b;
a = a / b;
System.out.println("a = " + a + ",b = " + b); //a = 20,b = 10