竹内纱里奈和大战黑人_欧美成人黄色小视频_91福利影视_欧美在线观看视频网站_h色网站免费观看_97综合

極客小將

您現(xiàn)在的位置是:首頁 » scratch編程資訊

資訊內(nèi)容

Scratch怎么調(diào)試程序呢?看看他怎么說

極客小將2020-12-15-

https://cdn.china-scratch.com/timg/190929/11443S518-0.gif

??

?????在程序開發(fā)過程中,出現(xiàn)程序錯(cuò)誤 (BUG) 是不可避免的。這時(shí)候就需要對(duì)程序進(jìn)行調(diào)試,通過調(diào)試,發(fā)現(xiàn)程序錯(cuò)誤,從而著手修復(fù)BUG。

本文將介紹一些在Scratch中調(diào)試程序的實(shí)用方法。


01

概述

????編寫一段程序或許不難,難的是程序出現(xiàn)錯(cuò)誤后,調(diào)試、排查、修復(fù)的過程。與編寫程序相比,程序調(diào)試對(duì)于開發(fā)人員的水平要求更高。從教學(xué)的角度來看,學(xué)生的程序調(diào)試排錯(cuò)能力是一種層次較高的能力。學(xué)生跟著老師學(xué)習(xí)了一百個(gè)案例,每行代碼都爛熟于心,但是當(dāng)真正自己開始編寫項(xiàng)目時(shí),出現(xiàn)BUG卻手足無措。這時(shí)掌握程序排錯(cuò)方法顯得格外重要,好的調(diào)試策略是設(shè)計(jì)程序時(shí)的一件法寶。程序調(diào)試亦是學(xué)習(xí)編程對(duì)思維方式鍛煉的體現(xiàn)。

????至于程序出現(xiàn)錯(cuò)誤的原因,除了那些所有編程語言共通的原因,還有一些“Scratch 特色”的原因。是由于 Scratch 本身機(jī)制問題導(dǎo)致程序執(zhí)行結(jié)果與預(yù)期目標(biāo)不符合。一些經(jīng)典的、由于 Scratch 本身機(jī)制問題導(dǎo)致的BUG與解決方案在本公眾號(hào)的其他文章中都有提到,如

控制Scratch異步代碼的執(zhí)行順序

Scratch中顏色的正確使用姿勢(shì)

Scratch2.0中【碰到顏色()?】積木產(chǎn)生的卡頓現(xiàn)象及分析

每個(gè)Scratcher都應(yīng)該知道的浮點(diǎn)運(yùn)算


02

調(diào)試方法

1、氣泡輸出法

利用【說()】或【思考()】積木的對(duì)話氣泡,返回對(duì)象的某個(gè)參數(shù),或是報(bào)告某個(gè)條件是否成立。

https://cdn.china-scratch.com/timg/190929/11443a5S-1.gif

利用【說()】積木使克隆體報(bào)告其ID

克隆體的局部屬性的獲取是比較麻煩的,用【說()】積木可以較為方便地查看某一個(gè)克隆體的某個(gè)局部屬性。

upload/article/images/2020-12-15/6a873c20c41a3f33113b1fdb303aedca.jpg

利用【說()】積木查看角色碰撞情況

可以十分靈敏地顯示老鼠是否碰到貓頭鷹。

優(yōu)勢(shì):

①使用起來十分方便、靈活。在程序運(yùn)行過程中想要測試某個(gè)角色在某個(gè)節(jié)點(diǎn)的參數(shù),只需把【說()】積木放置在對(duì)應(yīng)的腳本中,結(jié)果一目了然。

②通用性強(qiáng),支持多種數(shù)據(jù)類型的輸出,無論是數(shù)字類型、字符類型還是布爾類型,都可以輸出。

③且呈現(xiàn)方式直觀,多個(gè)角色的局部屬性通過這種方法可以同時(shí)在舞臺(tái)上被觀察到,而不必切換角色

劣勢(shì)

①【說()】積木會(huì)說謊,這類在舞臺(tái)中輸出內(nèi)容的積木,在輸出時(shí)都會(huì)對(duì)數(shù)據(jù)進(jìn)行一定的處理,無法獲取最真實(shí)或者說最接近真實(shí)的數(shù)據(jù)。

upload/article/images/2020-12-15/0418bc9beefae6dfe453977110a87957.jpg

upload/article/images/2020-12-15/15485ecfcda899c275d64eefe673811c.jpg

【說()】積木將原始數(shù)據(jù)的小數(shù)保留至百分位

氣泡輸出法會(huì)對(duì)數(shù)據(jù)進(jìn)行了一定的處理,這的確是一種優(yōu)化處理,但是在某些情況下,這種優(yōu)化反而會(huì)掩蓋事實(shí)的真相,而不利于我們修復(fù)BUG,唯物辯證法如是說。

upload/article/images/2020-12-15/df9c995ec9c021550049ff53cf40ed34.jpg

【說()】積木忽略忽略浮點(diǎn)運(yùn)算的精度丟失問題

由此引發(fā)的程序錯(cuò)誤自然無從下手。

關(guān)于浮點(diǎn)運(yùn)算的精度丟失問題,可以參照

《每個(gè)Scratcher都應(yīng)該知道的浮點(diǎn)運(yùn)算》。

2、積木點(diǎn)擊法

顧名思義就是直接點(diǎn)擊功能積木(圓角矩形和六邊形),查看其返回值。

upload/article/images/2020-12-15/8ad7dec8ff1f7c975cb1f35ee91da9ed.jpg

upload/article/images/2020-12-15/abc67178251fd06dec617d7f9dfb69c4.jpg

在積木區(qū)中直接點(diǎn)擊功能積木

官方指定調(diào)試方法,純粹為了調(diào)試而生的功能

優(yōu)勢(shì):

①方便,直接點(diǎn)擊就能看到返回值,不需要配合其他積木使用。

②數(shù)據(jù)原始,通過這種方法能拿到最一手的、未經(jīng)過任何加工處理、零添加的數(shù)據(jù)。

劣勢(shì):

①靈活性較差,具有滯后性。無法實(shí)時(shí)返回?cái)?shù)據(jù),只能返回點(diǎn)擊積木瞬間的值,如上文中貓頭鷹和老鼠的案例,老鼠碰到貓頭鷹,短短一瞬間后就離開,除非手速夠快,否則是難以用這種方法捕捉到這個(gè)瞬間的返回值的。

②通用性較差,一些特殊的積木,如【碰到(鼠標(biāo)指針)?】

upload/article/images/2020-12-15/fd3ee0126e66339e41f4bcbca79225df.jpg

通過積木點(diǎn)擊法獲取的這個(gè)積木的返回值,一定是false。點(diǎn)擊積木的瞬間,鼠標(biāo)一定是在積木上,而不可能同時(shí)出現(xiàn)在角色上。

upload/article/images/2020-12-15/e6c2645296c65bfda86a2b7ecfd9b78b.jpg

凡事無絕對(duì)……

3、顯示器輸出法

有的圓角矩形積木是自帶顯示器的,可以勾選積木前的單選框,直接從舞臺(tái)中的顯示器觀察到其數(shù)值。

upload/article/images/2020-12-15/1297bba47b700de33f7bc5fa68bfb8ae.jpg

至于沒有顯示器的積木,可以通過變量來賦予它顯示器。

upload/article/images/2020-12-15/d9bd30db2027190bfb08e97d99f06d7b.jpg

將返回值賦值給變量

upload/article/images/2020-12-15/73d60d9ab9a9e08d2418c8bf3e54213e.jpg

同理,當(dāng)有多組數(shù)據(jù)時(shí),還可以通過列表顯示器來呈現(xiàn)。

upload/article/images/2020-12-15/ba866eb0cc09a7b5c4b6c64446e0cf82.jpg

轉(zhuǎn)載需注明作者和出處

顯示器輸出法類似于文字輸出法,都是將返回值直接輸出到舞臺(tái)中,可以直接進(jìn)行觀測。

優(yōu)勢(shì):

①與文字輸出法相比,界面更整潔清爽

②可以保留作用域:全局變量/局部變量

③同文字輸出法

劣勢(shì)

①需要新建變量/列表,使用起來略顯繁瑣。

②數(shù)據(jù)同樣會(huì)經(jīng)過處理,無法獲取最真實(shí)或者說最接近真實(shí)的數(shù)據(jù)。

4、計(jì)數(shù)法

借助變量統(tǒng)計(jì)一段腳本的執(zhí)行次數(shù),最經(jīng)典的做法非克隆體上限測試莫屬。

upload/article/images/2020-12-15/bcdf8b0fae7f5c455cd4c4d5c23a9399.jpg

用計(jì)數(shù)法統(tǒng)計(jì)克隆體上限

https://cdn.china-scratch.com/timg/190929/1144521439-15.gif

變量 cloneCount 數(shù)值達(dá)到300不再增長(采用4倍速剪輯)

突發(fā)奇想:

upload/article/images/2020-12-15/0e2263f843df1e2b1a1450ed487521a5.jpg

我將其命名為?遞歸克隆??

執(zhí)行效果請(qǐng)自行腦補(bǔ)……https://cdn.china-scratch.com/Public/Home/images/grey.gif

在一些復(fù)雜的程序中,循環(huán)到底執(zhí)行了多少次、消息發(fā)送了幾次,又接收了幾次、多少克隆體執(zhí)行了相應(yīng)的腳本,都是難以直接觀察出來的,這時(shí)候用計(jì)數(shù)法來進(jìn)行測試,結(jié)果就一目了然了,一旦計(jì)數(shù)結(jié)果與預(yù)期不符合,那就能進(jìn)一步鎖定BUG所在位置。

優(yōu)勢(shì):

①直觀,可以直觀地反映某些不直觀的腳本的執(zhí)行次數(shù),如克隆、消息。

②準(zhǔn)確性強(qiáng),除非積木放錯(cuò)測試節(jié)點(diǎn)。

③靈活性強(qiáng),“哪里不會(huì)點(diǎn)哪里”,需要測試哪段腳本的執(zhí)行次數(shù),把【將變量增加(1)】往相應(yīng)的位置一放就可以了。

④具有一定的通用性。

聲明:本文章由網(wǎng)友投稿作為教育分享用途,如有侵權(quán)原作者可通過郵件及時(shí)和我們聯(lián)系刪除

預(yù)約試聽課

已有385人預(yù)約都是免費(fèi)的,你也試試吧...

主站蜘蛛池模板: 久久久久久亚洲 | 99久久久无码国产精品 | 91中文在线 | 国产一区二区精品在线 | 久久九九免费 | 91麻豆精品国产 | 国产精品一区在线播放 | 欧美成人精品一区二区男人看 | 欧美日韩免费看片 | 91久久久久久久久 | 国产成人精品一区二区三区视频 | 爱情岛论坛亚洲线路一 | 国产亚洲一区二区三区 | 成人av电影在线观看 | 久久国产精品网站 | 91欧美精品成人综合在线观看 | 国产精品一区二区在线观看 | 久久国产福利 | 不卡精品 | 极品束缚调教一区二区网站 | 日韩视频在线一区二区 | 亚洲成人在线视频播放 | 一区二区三区欧美 | 国产精品一区视频 | 九九热在线观看视频 | 久热免费视频 | 天天插天天干 | 欧美一区二区免费视频 | 欧美激情视频在线播放 | 国内av毛片| 国产女人夜夜春夜夜爽免费 | 在线一区观看 | 精品一区二区久久久久久久网站 | 国产精品一区二区三区久久久 | 又黄又湿的网站 | 最近中文字幕mv在线资源 | 久久一精品 | 五月激情丁香 | 亚洲一区二区久久 | 三级av网址 | 免费av一区二区三区 |