【转载】发生「null参数报错」的正确解决方法 | 亲子课堂 第 13 课

森林

地牢里的关卡主要是偏向锻炼用户的基本语法结构和计算机思维,让大家熟悉极客战记的操作与代码的使用。

来到了森林,关卡将会变得更多更难,同样,到了森林,大家就正式开始接触编程的几大重要知识点:

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

无箭狼

在这里插入图片描述

关卡简介:

「无箭狼」这是一个非常简单的关卡,但不少同学在闯关的时候容易误解关卡意思,导致卡关。

通关展示:

在这里插入图片描述

思路讲解

在这里插入图片描述
本关的通关目标是收集15个蘑菇。

而进入游戏时的目标页告诉我们,这片森林里存在着危险的食人魔猎手,所以我们必须要唤醒我们的宠物狼来帮助我们抵御箭矢。
在这里插入图片描述
在这里插入图片描述
根据注释,我们首先需要唤醒宠物狼,只需要走到宠物狼的身边说点什么即可。
在这里插入图片描述
随后小狼就醒来了,而第二行注释则要求开始收集蘑菇。

可能是受第一行注释的误导,不少同学觉得,唤醒宠物狼以后不用让宠物狼做点什么吗?

于是潜意识认为,下一行代码是让宠物狼帮忙去收集蘑菇。

然后就使用pet.fetch()语句来让宠物狼收集蘑菇。

那么此时便会发生问题:

如果宠物狼去收集蘑菇了,那么谁来保护英雄抵御箭矢呢?

所以此时要求的,其实是让英雄自己去收集,而根据提示,我们能够知道,只需要让宠物狼跟在我们身边,就能自动帮助我们抵御箭矢。

因此,正确的过关思路应该是:

  1. 英雄唤醒宠物狼
  2. 英雄收集蘑菇

根据通关思路,完成代码:
在这里插入图片描述
此时大家的代码可能是这样写的,而这样写也确实能够直接过关。

但是这样并不是一个真正正确的过关代码。
在这里插入图片描述
像上方这个错误,大家或许在前面的关卡偶尔会见到过。

报错的内容是:attack的参数接收到了null

可能每个字大家都认识,但是串起来以后就不太明白具体的意思了,null这个单词的意思是「空」、「不存在的」,那么我们看看此处attack的参数是什么?
在这里插入图片描述
是我们传入的enemy变量,是搜索敌人后得到的变量,此处的报错正是说明我们向attack函数内传入的enemy变量,不存在。

这也就是说明,此时我们并没有在周围有发现敌人,因此我们的attack函数便失去了攻击的目标,不知道目标,但程序仍然要执行这一行代码,此时就会发生图中这样的报错:
在这里插入图片描述
因此,解决的办法就是,在执行函数前,先判断一下我们的变量是否存在:
在这里插入图片描述
像这样,使用if条件判断语句来判断变量,如果变量为null,是一个空值,那么此时的条件就无法满足,因为一个不存在的值是没有办法让条件成立的,则下方函数就不会在变量不存在的时候被执行,避免了发生代码错误。

除了enemy敌人变量,像物品item之类的变量,在被函数使用之前,也都需要使用if来检查一下,避免发生报错,因此,本关的正确通关代码应是如下。

通关代码

在这里插入图片描述
以上便是森林关卡「无箭狼」的过关教学了~

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值