课程首页 › 第1部分 › 第9课

第9课 陈醋和酱油不能混为一瓶

第1部分 初识 C++ · 顺序结构· 知识点:变量值的互换

陈醋和酱油不能混为一瓶(变量值的互换)

插图

翻译助力理解

●vinegar:陈醋。

●soy:酱油。

脑洞大开

现在怎样做才能将陈醋和酱油装回到正确的瓶子呢?

1.这样可行吗

(1)直接将酱油倒入soy瓶子中。

插图

(2)再将陈醋倒入vinegar瓶子中。

插图

啊,这不就成了酱油陈醋了吗,混在一起了。

2.借助一个空瓶子

(1)将酱油从vinegar瓶子倒入空瓶子empty中。

插图

(2)将陈醋从soy瓶子倒入vinegar瓶子中。

插图

(3)将酱油从空瓶子empty倒入soy瓶子中。

插图
插图

变量的交换

试着用程序实现“酱油”和“陈醋”的交换。

插图

运行结果:

vinegar的值是:酱油

soy的值是:陈醋

交换以后

vinegar的值是:陈醋

soy的值是:酱油

变量中字符串的交换和实际瓶子中酱油、陈醋的交换逻辑是一样的。

(1)声明一个变量empty作为中间变量。

(2)将变量vinegar的值赋给中间变量empty,此时empty的值是“酱油”。

(3)再将变量soy的值赋给变量vinegar,此时vinegar的值是“陈醋”。

(4)最后将中间变量empty的值赋给变量soy,此时soy的值是“酱油”,完成了变量的互换。

敲黑板

看似简单,稍不注意也容易写错顺序。

插图

记住一个口诀,这和上面倒酱油和陈醋的例子是一样的,哪里空了,就往哪里倒。

①empty空了,往它里面倒,vinegar和soy倒哪一个都可以。

②vinegar倒完,vinegar空了,于是往vinegar里倒。

③soy倒完也空了,再往soy里倒。

如果没有中间变量,会怎么样呢?

插图

运行结果:

vinegar的值是:酱油

soy的值是:陈醋

交换以后

vinegar的值是:陈醋

soy的值是:陈醋

提出思考

为什么会这样呢?想要洞察结果,只需要跟着程序运行,跟踪变量值的变化就可以找到答案。

插图

(1)

插图

一开始vinegar的值是“酱油”,soy的值是“陈醋”。

(2)执行vinegar=soy,vinegar的值变成了soy的值,也就是“陈醋”,此时vinegar的值不再是“酱油”而是“陈醋”。

再执行soy=vinegar,soy的值变成了vinegar的值,vinegar的值已经变成了“陈醋”,赋值后soy还是“陈醋”。

高矮排序

坐座位讲究矮坐前,高坐后。1号座位在前,2号座位在后,现在1号座位上坐了一位身高185cm的男士,2号座位上坐了一位身高165cm的女士,需要将他们重新排一排位置。

思考并编写程序,感受变量值互换的过程。

插图

运行结果:

交换以后

1号座位身高:165

2号座位身高:185

巩固练习

(1)调整下面的程序代码,实现数字a和b的交换。

插图

(2)已知数字a=3、数字b=0、数字c=6、数字d=2,要将它们组合起来输出一个最大的4位数,请补充完整下面的程序。

插图

(3)阅读下面的程序,添加几行代码,将8、0、5、2这4个数字组成最小的4位数并输出。

插图