要交换两个变量:x、y的值。
以前要交换两个变量值,直接借助一个临时变量temp即可。
那么,
如何不通过第三变量来交换x, y中的值呢?
很简单,通过和差的转换就可以:
//和差法:
x = x + y; //先将x+y的和赋给x
y = x - y; //现在的x减去原始的y,两者之差就等于原始的x值,实现了x赋值给y。
x = x - y; //再将现在的x减去现在的y,就相当于原始的(x+y)-x。得到y的值,赋给x。
完整代码:
import java.util.Scanner;
public class Test {
public static void main(String[] args){
Scanner input = new Scanner(System.in);
System.out.print("请输入整数x:");
int x = input.nextInt();
System.out.print("请输入整数y:");
int y = input.nextInt();
//和差法:
x = x + y;
y = x - y;
x = x - y;
System.out.println("不借助第三变量交换后:");
System.out.println("x = " + x + " y = " + y);
}
}
测试结果: