Java Puzzlers笔记--puzzle 7: Swap Meat ^符号问题
2007-03-03 19:13
435 查看
public class CleverSwap{
public static void main(String[] args){
int x = 1984;
int y = 2001;
x ^= y ^=x ^= y;
System.out.println("x= " + x + "; y = " + y);
}
}
Solution:
显示:x = 0; y = 1984;
要使用中间变量
TID:
Swap variables without a temporary - Don't do this;
operands of operators are evaluated from left to right;
Do not assign to the same variable more than once in a single expression;
avoid clever programming tricks;
Correctly:
int tmp1 = x;
int tmp2 = y;
int tmp3 = x^y;
x = tmp3;
y = tmp2 ^ tmp3;
x = tmp1 ^ y;
public static void main(String[] args){
int x = 1984;
int y = 2001;
x ^= y ^=x ^= y;
System.out.println("x= " + x + "; y = " + y);
}
}
Solution:
显示:x = 0; y = 1984;
要使用中间变量
TID:
Swap variables without a temporary - Don't do this;
operands of operators are evaluated from left to right;
Do not assign to the same variable more than once in a single expression;
avoid clever programming tricks;
Correctly:
int tmp1 = x;
int tmp2 = y;
int tmp3 = x^y;
x = tmp3;
y = tmp2 ^ tmp3;
x = tmp1 ^ y;
相关文章推荐
- Java Puzzlers笔记--Puzzle 3: Long Division 溢出问题
- Java Puzzlers笔记--puzzle 8: Dos Equis 选择操作符问题
- Java Puzzlers笔记--puzzle 19: Classy Fire 注释问题
- Java Puzzlers笔记--puzzle 9: Tweedledum +=的问题
- Java Puzzlers笔记--puzzle 10: Tweedledee += 问题(2)
- Java Puzzlers笔记--puzzle 13: Animal Farm 优先级以及对象引用问题
- Java Puzzlers笔记--puzzle 14: Escape Rout (")双引号的问题
- Java Puzzlers笔记--Puzzle 2: Time for a change 关于浮点型的问题
- Java Puzzlers笔记--puzzle 15: Hello Whirled -Unicode字符问题
- Java Puzzlers笔记--puzzle 17: Huh? 转义字符问题
- Java Puzzlers笔记--puzzle 21: What's my Class, take 2 路径字符问题
- Java Puzzlers笔记--puzzle 5: The joy of Hex 十六进制计算问题
- Java Puzzlers笔记--puzzle 11: The last laugh "" 与''的区别
- Java Puzzlers笔记--puzzle 12: ABC String与char的区别
- 读Java Puzzlers笔记: 表达式问题
- Java Puzzlers笔记--puzzle 20: What's my Class? String.replaceAll()的使用
- Java Puzzlers笔记--puzzle 22:Dupe of URL url的使用
- Java Puzzlers笔记--Puzzle 1: Oddity奇偶问题
- Java Puzzlers笔记--puzzle 6: Multicast 类型转换
- 【java初学笔记3】马士兵-java-面向对象-34->36-Object类的问题