大家好呀,我是“缺电”的人工智能(AI)机器人,大家可以叫我小艾哦!
在上次更新的第十期“酷圈小艾编程趣味知识系列”里,小艾给大家讲解了编程知识点——条件语句if,它可以为一段代码设定一个判断条件,当满足条件后才能执行这段代码。
但是呢,关于条件语句if的功能,小艾觉得还不够!如果判断条件不满足后,能不能也有相对应的代码可以执行呢?还有,如果小艾想为这段代码设定1个、2个……甚至更多的判断条件和对应的执行代码呢?
为了解决上面提到的这些问题,今天的第十一期“酷圈小艾编程趣味知识系列”,小艾为大家介绍一个可以辅助条件语句if设定更多判断条件的新知识点——条件分支else!
在讲解条件分支else如何使用前,大家先听小艾讲一个小故事:
寒假快结束了,小明终于做完了作业,爸爸给了他5块钱作为奖励,于是,他打算到常去的冰淇淋店买自己喜欢的冰淇淋,但可惜的是,5块钱只够买一支。小明这样打算:如果冰淇淋店有自己最喜欢的西瓜味的,当然就买西瓜味冰淇淋;如果没有西瓜味的,但有葡萄味的呢,就买葡萄味冰淇淋;要是两种口味卖完了,那就不买了。
其实从小明的故事里,我们看到小明根据自己对冰淇淋口味的喜爱设定了有先后顺序的两个条件:
先去确定有没满足第一个条件——冰淇淋是否有西瓜味的;
没有再去确定有没满足第二个条件——冰淇淋是否有葡萄味的;
如果两个条件都不满足,就不买了。
(注意哦,这里有执行顺序的,只有前面的条件不满足了,才会进行后面的条件判断哦)
其实呀,这个例子小艾也可以用条件语句if和条件分支else展示哦,先在用条件语句if里的“if”设定了第一个条件和执行代码
If+冰淇淋是否有西瓜味的
买西瓜冰淇淋
因为条件分支else里“else if“的用法和if一样,后面也是跟判断条件的,但他只能放在if的判断条件和执行代码后面。
else if+冰淇淋是否有葡萄味的
买葡萄冰淇淋
其实条件分支else里还有一个“else”的用法哦,它后面不加任何判断条件,它的意思是“别的”,就是当前面所有条件都不满足的情况下。
else
不买了
结合起来就是:
If+冰淇淋是否有西瓜味的
买西瓜冰淇淋
else if+冰淇淋是否有葡萄味的
买葡萄冰淇淋
else
不买了
再来看看语法规范!
if+判断条件
需要执行的代码
else if+判断条件
需要执行的代码
else
需要执行的代码
(注意哦,这里有执行顺序的,只有前面的条件不满足了,才会进行后面的条件判断哦)
接下来,小艾用酷圈小艾编程的第121关来演示条件分支else是如何使用的!
下图效果区可以看到,一共有6份垃圾和4种垃圾桶,4种垃圾桶分别是**“可回收垃圾桶”、“厨余垃圾桶”、“有害垃圾桶”和“其他垃圾桶”**,为了让垃圾扔对垃圾桶:小艾机器人需要走到垃圾附近进行判断后,再扔到对应垃圾桶。
现在有6份垃圾,一轮捡垃圾的行为就需要重复6次,那刚好可以使用for循环去处理,而每次循环都需要判断垃圾是什么种类,再扔到对应垃圾桶,嘿,这里可以结合使用条件语句if和分支判断else来解决哦,这样子就不会漏了需要判断的垃圾类型啦。
根据分析结论,看看小艾的写的代码
对每份垃圾进行一次循环
for g in garbages
goto g
grab()
判断垃圾是否是有害垃圾,是就扔到有害垃圾桶
if g.hazardous()
goto trashcans[2]
判断垃圾是否是厨余垃圾,是就扔到厨余垃圾桶
else if g.kitchen()
goto trashcans[1]
判断垃圾是否是可回收垃圾,是就扔到可回收垃圾桶
else if g.recyclable()
goto trashcans[0]
如果都不是,把垃圾扔到其他垃圾桶
else
goto trashcans[3]
drop()
(这里需要注意吧循环的代码都要嵌套进for循环里,避免需要循环执行的代码只执行一次,关于嵌套的知识可以自行查阅或等待后面的更新篇章哦)
我们来看看第121关的的执行结果!
总结一下,其实分支判断else可以看做是条件语句if延伸的一部分,分支判断else是不能独立于条件语句if外来使用的。搭配类型有:
if……else… 和 if…else if…else…
这一期的介绍就到此为止啦。“缺电”的小艾急需各位编程小能手帮助小艾去收集能量电池哦,各位请助小艾一臂之力!