用三种方式交换两个变量的值
程序员文章站
2022-07-13 17:54:29
...
方式一:定义第三方临时变量
class Demo28{
public static void main(String[] args){
int a = 3;
int b = 5;
System.out.println("----------交换前的值----------");
System.out.println("a="+a);
System.out.println("b="+b);
int temp = a ;
a = b;
b = temp;
System.out.println("----------交换后的值----------");
System.out.println("a="+a);
System.out.println("b="+b);
}
}
运行结果如下图所示:
方式二:相加法
缺点:两个int类型的数据相加,有可能会出现超出int的表示范围。
class Demo2{
public static void main(String[] args){
int a = 3;
int b = 5;
System.out.println("----------交换前的值----------");
System.out.println("a="+a);
System.out.println("b="+b);
a = a+b; //a=8
b = a-b; //b=8-5=3
a = a-b; //a=8-3=5
System.out.println("----------交换后的值----------");
System.out.println("a="+a);
System.out.println("b="+b);
}
}
运行结果如图所示:
方式三:使用异或,
缺点:逻辑不清晰。
class Demo3{
public static void main(String[] args){
int a = 3;
int b = 5;
System.out.println("----------交换前的值----------");
System.out.println("a="+a);
System.out.println("b="+b);
a = a^b; //a=3^5
b = a^b; //b=(3^5)^5=3
a = a^b; //a=(5^3)^3=5
System.out.println("----------交换后的值----------");
System.out.println("a="+a);
System.out.println("b="+b);
}
}
注意:
在使用异或“^”和其他位运算符的时候千万不要忘记赋值,因为异或和其他位运算符并不会改变变量本身的值,也就是说“a^b;”没有任何意义,必须将运算结果赋值给一个变量,作为开发人员要尽量避免这样的错误发生。
上一篇: BLE-Flash读写
下一篇: 静态static关键字一些用法