`

刚才看到的,蛮有意思的,与大家分享下

阅读更多

public void swap(int a ,int b){
    int temp = a;
    a = b;
    b = temp;
}


要求:修改此方法,不能定义temp中间变量,实现值得交换

 

public void swap(int a ,int b){
b = a + b;

a = b - a;
b = b - a;

System.out.println(" a = " + a );
System.out.println(" b = " + b );
}

 

如果2个变量都是数字,这样可以
字符串的话,就不行了。而且可能会产生溢出
这样比较通用:

public void swap(int a ,int b){    

    b ^= a ^= b ^= a;   

    System.out.println(" a = " + a );    

    System.out.println(" b = " + b );    

}  

 

实际上就是异或操作 :

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

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics