交换两个数是编程的基础,以下是常见的三种方式解决这个问题:
public void change1(int a,int b)
{
System.out.println("a= "+a+" b= "+b);
int temp=a;
a=b;
b=temp;
System.out.println("a= "+a+" b= "+b);
}
这种方式是每一个学习编程的人都应该会的,不多说。
public void change2(int a,int b) { System.out.println("a= "+a+" b= "+b); a=a+b; b=a-b; a=a-b; System.out.println("a= "+a+" b= "+b); }
这个方法没有用的临时变量,采用了一个简单的技巧来解决这个问题,不过这中方法有一个小的缺陷:如果a和b特别大的话,可能出现溢出的情况,有一定的局限性。
1 public void change3(int a,int b) 2 { 3 System.out.println("a= "+a+" b= "+b); 4 a=a^b; 5 b=a^b; 6 a=a^b; 7 System.out.println("a= "+a+" b= "+b); 8 }
上面这种方法采取了异或的方式来解决,基本的原理是一个数如果和同一个数异或两次仍然是这个数本身。
浙公网安备 33010602011771号