需求
已知有两个Int类型的变量a和b, 初始化值分别为10和20, 请写代码实现变量a和变量b的值的交换.
即最终结果为: a=20, b=10.
注意: 不允许直接写
a=20, b=10
这种代码.
*方式一: 通过算术运算符实现.
//定义两个Int类型的变量a和b, 初始化值分别为10和20
var a = 10
var b = 20
//将变量a和b的计算结果赋值给变量a
a = a + b //a = 30, b = 20
//计算并赋值
b = a - b //a = 30, b = 10
a = a - b //a = 20, b = 10
//打印结果
println("a: " + a) //a: 20
println("b: " + b) //b: 10
方式二: 通过定义临时变量实现
//定义两个Int类型的变量a和b, 初始化值分别为10和20
var a = 10
var b = 20
//定义临时变量temp, 记录变量a的值
var temp = a //a = 10, b = 20, temp = 10
//把变量b的值赋值给a
a = b //a = 20, b = 20, temp = 10
//把临时变量temp的值赋值给b
b = temp //a = 20, b = 10, temp = 10
//打印结果
println("a: " + a) //a: 20
println("b: " + b) //b: 10
方式三: 通过位运算符实现**
//定义两个Int类型的变量a和b, 初始化值分别为10和20
var a = 10
var b = 20
//定义临时变量temp, 记录变量a和b的位异或值(这个值不需要我们计算)
var temp = a ^ b //即: temp = 10 ^ 20
//通过位异或进行交换变量值
a = a ^ temp //运算流程: a = a ^ temp = a ^ a ^ b = 10 ^ 10 ^ 20 = 20
b = b ^ temp //运算流程: b = b ^ temp = b ^ a ^ b = 20 ^ 10 ^ 20 = 10
//打印结果
println("a: " + a) //a: 20
println("b: " + b) //b: 10