4:如何实现对两个整数变量的值进行互换。

来源:互联网 发布:网络打印机添加xp 编辑:程序博客网 时间:2024/06/06 05:39
package day;


public class HomeWork_01 {
// 4:如何实现对两个整数变量的值进行互换。
public static void main(String[] args) {
// 方法一:
// 要点:int c1 =a1;创建一个变量去存放要调换的某个变量的值,之后拿这个变量和第二交换
//int i =1;int j=2;
// 由于【ij是变量】如果直接输出的i和j的话,会导致结果i=1;j=1
// 因为j=i后,j是1,下面又i=j,又把1给了i,所以导致ij都是1

int a1 =11;
int b2 =22;
int c1 =a1;//c1=11  (先把a1(11)赋值给c1,让c1的值就是a1的)
a1 = b2;// a1=22 
b2 = c1;// b2=11 (然后在和c1(11)赋值给b2)

System.out.println("初始值:a1=11,b2=22;"+"a1值是"+a1+";b2的值="+b2);


//方法四【推荐】(比较容易理解):创建一个变量,并将值进行交换
int x =8;
int y =9;
int temp;      //创建一个中间变量
temp = x;
x = y;
y =temp;   //将temp的值和y交换
System.out.println("初始值:x=8,y=9;" + "互换后的值:x=" + x + ";y=" + y);



// 方法二:不需定义第三方变量的方法(有弊端,容易超出int的取值范围)
int a = 1;
int b = 2;
a = a + b; // a= 3=1+2
b = a - b; // b= 1=3-2 //这里的a是3始终还是3
a = a - b; // a= 2=3-1
System.out.println("初始值:a=1,b=2;" + "互换后的值:a=" + a + ";b=" + b);


// 方法三:不需定义第三方变量的方法,^按位异或:相同为false 0 不同为true 1;一个数据对另一个数据位异或两次 该数本身不变
int q = 1;  //十进制1转二进制=0001
int w = 2;  //十进制2转二进制=0010
q = q ^ w;  //   q=  0001^0010 (=0011)3
w = q ^ w;  //   w=  0011^0010 (此时w是=0001)1
q = q ^ w; // q=  0011^0001 (此时w是=0010)2
System.out.println("初始值:q=1,w=2;" + "互换后的值:q=" + q + ";w=" + w);

}
}
阅读全文
0 0