发生「null参数报错」的正确解决方法

2019-09-10 07:22:44
电脑报 2019年17期
关键词:关卡通关蘑菇

「无箭狼」这是一个非常简单的关卡,但不少同学在闯关的时候容易误解关卡意思,导致卡关。本关的通关目标是收集15个蘑菇。

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

可能是受第一行注释的误导,不少同学觉得,唤醒宠物狼以后不用让宠物狼做点什么吗?于是潜意识认为,下一行代码是让宠物狼帮忙去收集蘑菇。然后就使用pet.fetch()语句来让宠物狼收集蘑菇。那么此时便会发生问题:如果宠物狼去收集蘑菇了,那么谁来保护英雄抵御箭矢呢?

所以此时要求的,其实是让英雄自己去收集,而根据提示,我们能够知道,只需要让宠物狼跟在我们身边,就能自动帮助我们抵御箭矢。因此,正确的过关思路应该是:英雄唤醒宠物狼——英雄收集蘑菇。根据通关思路,完成代码。

此时大家的代码可能是这样写的,而这样写也确实能够直接过关,但是这样并不是一个真正正确的过关代码。像这个错误,大家或许在前面的关卡偶尔会见到过。报错的内容是:attack的参数接收到了null。

可能每个字大家都认识,但是串起来以后就不太明白具体的意思了,null这个单词的意思是「空」、「不存在的」,那么我们看看此处attack的参数是什么?

是我们传入的enemy变量,是搜索敌人后得到的变量,此处的报错正是说明我们向attack函数内传入的enemy变量,不存在。这也就是说明,此时我们并没有在周围发现敌人,因此我们的attack函数便失去了攻击的目标,不知道目标,但程序仍然要执行这一行代码,此时就会发生图中这样的报错。因此,解决的办法就是,在执行函数前,先判断一下我们的变量是否存在。

使用if条件判断语句来判断变量,如果变量为null,是一个空值,那么此时的条件就无法满足,因为一个不存在的值是没有办法讓条件成立的,则下方函数就不会在变量不存在的时候被执行,避免了发生代码错误。除了enemy敌人变量,像物品item之类的变量,在被函数使用之前,也都需要使用if来检查一下,避免发生报错,因此,本关的正确通关代码。

猜你喜欢
关卡通关蘑菇
海龟上岸
开七窍的混沌大帝又活了:修辞通关①
通关英雄榜
一碗面的通关密码
文苑(2020年5期)2020-06-16 03:18:28
通关游戏
爆图团
妇女之友(2016年9期)2016-11-07 19:39:58
蘑菇
2015年高考江苏省物理卷一道题的3种解法
物理通报(2015年9期)2016-01-12 06:41:46
妙题巧解
蘑菇伞