a = b-(a-(b = a));  //swapping a and b


另外,如果a=20,b=10为什么

System.out.println(b = a);


给20结果?

最佳答案

a = b-(a-(b = a));  //swapping a and b


这是交换numeric类型而不需要支持变量的一种方式。

他们通常在面试中问您这个问题。

由于它是一行编写的,因此特别不可读,但请分步考虑:

int a = 5;
int b = 2;

a = b - a; // <- -3
b = b - a; // <- 2 - ( - 3) <- 5
a = a + b; // <- (- 3) + 5 = 2


没有临时变量,仍然不能交换非numeric类型。





System.out.println(b = a);


我猜您想检查b是否等于a,在这种情况下,您应该写出System.out.println(b == a),其结果为布尔值。

使用b = a,可以将a的值分配给b,然后打印其结果。

10-02 02:38
查看更多