【转载】使用「多分支判断」,让程序更智能 | 亲子课堂 第 7 课

森林

地牢里的关卡主要是偏向锻炼用户的基本语法结构和计算机思维,让大家熟悉极客战记的操作与代码的使用。
来到了森林,关卡将会变得更多更难,同样,到了森林,大家就正式开始接触编程的几大重要知识点:

条件判断
运算符
函数
对象属性

发狂的矮人

在这里插入图片描述

关卡简介:

「发狂的矮人」这一关没有什么难点,依旧是照着注释填写即可完成,涉及了条件判断的一种新结构elif,if的多分支语句结构。

通关展示:

在这里插入图片描述

思路讲解

在这里插入图片描述
通过阅读已有代码上的注释,我们能够理解,这段代码要我们做的有三件事:

  1. 如果劈斩(cleave)技能准备好了,则使用劈斩攻击敌人
  2. 如果敌人距离小于5,则attack攻击敌人
  3. 如果上述条件均不满足,则攻击宝箱

上次我们提过,一个路口有两条路,这是双分支语句,而今,这个路口具有三条路,它便是一个三分支语句,或者说是多分支语句。

看到代码中那个看起来较为陌生的单词:elif,它就是产生多分支语句的代码关键词

知识点:if - elif(条件判断多分支语句)

elif这个单词看起来有些陌生,但把它拆开,你或许就会找到一些熟悉的影子。

else if

elif正是Python里对else if的缩写,则图中的代码其实便是如下图所示

在这里插入图片描述
此时拆开仅为教学说明,非正确用法

if - else我们就比较熟悉了,作为双分支结构,它的作用是当if的条件不满足时,执行else后的代码块。

那么if - elif,就等于是在else后多加了一个条件判断,如果if条件不满足,程序就想要执行else后的代码,那么此时还得看看else的代码是否满足

借用这个思路,我们就可以多插入几个分支语句,让二选一的局面变成了多选一。

了解了多分支语句的作用后,我们再来看这段代码,就没有那么简单了,它正确的流程应是:

  1. 如果劈斩(cleave)技能准备好了,则使用劈斩攻击敌人
  2. 如果劈斩技能没有准备好(if条件不满足),且敌人距离小于5(elif条件满足),则attack攻击敌人
  3. 如果上述条件均不满足,则攻击宝箱

此时可能就会有了一个问题,

如果有一个很多分支的代码块,第二个分支的条件满足了,执行了相应代码,而第三个,第四个分支的条件也满足,那它们的代码还会被执行吗?

我们可以通过say语句,在每个相应的分支下让英雄说话,以此来更好的观察各代码块有没有被执行,对代码略作修改:
在这里插入图片描述

看看运行情况:
在这里插入图片描述

可以看到英雄从始至终都只讲了一句话:劈斩执行了,而即使敌人跟他的距离已经低于5,它还是不会执行第二个分支,说出第二句话。

因此可知,答案是当一个分支满足执行后,后续分支再也不会被执行

这便是多选一的含义,无论有多少个条件满足,它只会执行第一个满足的代码块,执行结束,就离开了这个路口,后面的代码不再执行。

据此,我们即可轻松理解与完成代码。

通关代码

在这里插入图片描述
以上便是森林关卡「发狂的矮人」的过关教学了~

本攻略发于极客战记
极客战记——学编程,用玩的!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值