购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.6 案例:如何交换两个变量的值

需求:将下面代码中变量num1的值和变量num2的值交换,变量num1的值变为200,变量num2的值变为100。代码如下:

交换两个变量的值通常有以下两种方法。

1.借助第三方变量实现

借助第三方变量是交换变量的巧妙方法,也是基本的交换变量的方法,通过一个新变量作为中转站,从而实现变量的交换。使用该方法实现上述需求的代码如下:

我们可以把代码中的变量num1比作一杯水,变量num2比作一杯可乐,现在想把水和可乐互换。通常情况下,我们会找一个空杯子,先将水倒入空杯子中,再将可乐倒入原来装水的杯子中,最后将水倒入原来装可乐的杯子中,这样水和可乐就完成了互换。这里用到的空杯子就是第三方变量。因此,交换变量num1和变量num2的值时,我们可以声明一个第三方变量temp来作为中转站。

根据这个思路,回到本题,解题的具体操作分为三步。

(1)初始情况如图2-6所示,先将变量num1的值临时存储到变量temp中,如图2-7所示。

图2-6 初始情况

图2-7 将变量num1的值临时存储到变量temp中

(2)将变量num2的值赋给变量num1,如图2-8所示。

(3)将变量temp中的值取出来并赋给变量num2,如图2-9所示。

图2-8 将变量num2的值赋给变量num1

图2-9 将变量temp中的值取出来并赋给变量num2

需要注意的是,当temp=num1,即将变量num1的值赋给变量temp的时候,变量num1的值仍然存在。

2.求和实现

如果不借助第三方变量实现,那么可以通过数学原理完成变量值的互换。我们首先来看一下代码:

先通过“num1=num1+num2”将变量num1的值变为7,变量num1的原本值3已经被覆盖;num1此时的值7是两个数字相加的结果,变量num2的值依旧是4;再通过“num2=num1-num2”的方式获得值3,并将其赋值给变量num2,实现将变量num1的值换给变量num2;最后通过“num1=num1-num2”语句获得值4并赋值给变量num1。

上面的描述可能有一些晦涩难懂,我们可以把变量num1的值比作红球,将变量num2的值比作蓝球,如图2-10所示。这种方式其实就是把蓝球倒入装红球的杯子中,此时原来装蓝球的杯子是空的,如图2-11所示。再将原本装红球的杯子中的红球挑出来放进原本装蓝球的杯子中,此时红球和蓝球就完成了互换,也就是变量num1和变量num2的互换,如图2-12所示。最终红球和蓝球完成了互换,如图2-13所示。

图2-10 初始状态

图2-11 将蓝球倒入装红球的杯子中

图2-12 将红球放进原本装蓝球的杯子中

图2-13 最终状态

这种方式是一种非常巧妙的数学原理,虽然很不容易想到,但是通过这种解法使我们认识到了“算法”的重要性。所谓“算法”,就是解决问题的思路和方法,是“指挥计算机做事”的策略。学习编程不仅要学习API,而且要注重算法的培养。 Yy2056wWTYJy0oFlGuVUu6Gb8X+nX2lKSUqexZPmTaJoZcJDmJkmXSErUIcu9ahb

点击中间区域
呼出菜单
上一章
目录
下一章
×