a = b-(a-(b = a)); //swapping a and b
另外,如果a=20,b=10
为什么
System.out.println(b = a);
结果是20?
答案 0 :(得分:1)
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
,然后打印其结果。