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
这是一种无需支持变量即可交换数字
类型的方法。
他们通常在面试时问你这个问题。
它特别难以阅读,因为它是一行写的,但请逐步考虑这一点:
int a = 5;
int b = 2;
a = b - a; // <- -3
b = b - a; // <- 2 - ( - 3) <- 5
a = a + b; // <- (- 3) + 5 = 2
如果没有临时变量,您仍然无法交换非数字
类型。
与
System.out.println(b = a);
我猜您想检查 b
是否等于 a
,在这种情况下您应该编写 System.out.println(b == a)
,其计算结果为 boolean 值。
使用b = a
,您可以将a
的值赋给b
,然后打印其结果。
关于java - 这里到底发生了什么?这是交换两个变量的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48967355/