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

翻译助力理解
●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位数并输出。
