国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

發(fā)生「null參數(shù)報(bào)錯(cuò)」的正確解決方法

2019-09-10 07:22
電腦報(bào) 2019年17期
關(guān)鍵詞:關(guān)卡通關(guān)代碼

「無箭狼」這是一個(gè)非常簡單的關(guān)卡,但不少同學(xué)在闖關(guān)的時(shí)候容易誤解關(guān)卡意思,導(dǎo)致卡關(guān)。本關(guān)的通關(guān)目標(biāo)是收集15個(gè)蘑菇。

而進(jìn)入游戲時(shí)的目標(biāo)頁告訴我們,這片森林里存在著危險(xiǎn)的食人魔獵手,所以我們必須要喚醒我們的寵物狼來幫助我們抵御箭矢。根據(jù)注釋,我們首先需要喚醒寵物狼,只需要走到寵物狼的身邊說點(diǎn)什么即可。隨后小狼就醒來了,而第二行注釋則要求開始收集蘑菇。

可能是受第一行注釋的誤導(dǎo),不少同學(xué)覺得,喚醒寵物狼以后不用讓寵物狼做點(diǎn)什么嗎?于是潛意識(shí)認(rèn)為,下一行代碼是讓寵物狼幫忙去收集蘑菇。然后就使用pet.fetch()語句來讓寵物狼收集蘑菇。那么此時(shí)便會(huì)發(fā)生問題:如果寵物狼去收集蘑菇了,那么誰來保護(hù)英雄抵御箭矢呢?

所以此時(shí)要求的,其實(shí)是讓英雄自己去收集,而根據(jù)提示,我們能夠知道,只需要讓寵物狼跟在我們身邊,就能自動(dòng)幫助我們抵御箭矢。因此,正確的過關(guān)思路應(yīng)該是:英雄喚醒寵物狼——英雄收集蘑菇。根據(jù)通關(guān)思路,完成代碼。

此時(shí)大家的代碼可能是這樣寫的,而這樣寫也確實(shí)能夠直接過關(guān),但是這樣并不是一個(gè)真正正確的過關(guān)代碼。像這個(gè)錯(cuò)誤,大家或許在前面的關(guān)卡偶爾會(huì)見到過。報(bào)錯(cuò)的內(nèi)容是:attack的參數(shù)接收到了null。

可能每個(gè)字大家都認(rèn)識(shí),但是串起來以后就不太明白具體的意思了,null這個(gè)單詞的意思是「空」、「不存在的」,那么我們看看此處attack的參數(shù)是什么?

是我們傳入的enemy變量,是搜索敵人后得到的變量,此處的報(bào)錯(cuò)正是說明我們向attack函數(shù)內(nèi)傳入的enemy變量,不存在。這也就是說明,此時(shí)我們并沒有在周圍發(fā)現(xiàn)敵人,因此我們的attack函數(shù)便失去了攻擊的目標(biāo),不知道目標(biāo),但程序仍然要執(zhí)行這一行代碼,此時(shí)就會(huì)發(fā)生圖中這樣的報(bào)錯(cuò)。因此,解決的辦法就是,在執(zhí)行函數(shù)前,先判斷一下我們的變量是否存在。

使用if條件判斷語句來判斷變量,如果變量為null,是一個(gè)空值,那么此時(shí)的條件就無法滿足,因?yàn)橐粋€(gè)不存在的值是沒有辦法讓條件成立的,則下方函數(shù)就不會(huì)在變量不存在的時(shí)候被執(zhí)行,避免了發(fā)生代碼錯(cuò)誤。除了enemy敵人變量,像物品item之類的變量,在被函數(shù)使用之前,也都需要使用if來檢查一下,避免發(fā)生報(bào)錯(cuò),因此,本關(guān)的正確通關(guān)代碼。

猜你喜歡
關(guān)卡通關(guān)代碼
開七竅的混沌大帝又活了:修辭通關(guān)①
假作真時(shí)真亦假:邏輯通關(guān)②
電塔島歷險(xiǎn)
瘋狂冒險(xiǎn)島
博物館通關(guān)小列車
通關(guān)手
神秘的代碼
一周機(jī)構(gòu)凈增(減)倉股前20名
重要股東二級(jí)市場增、減持明細(xì)
近期連續(xù)上漲7天以上的股