国产日韩欧美一区二区三区综合,日本黄色免费在线,国产精品麻豆欧美日韩ww,色综合狠狠操

極客小將

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

資訊內(nèi)容

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

極客小將2020-12-15-

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

??

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

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


01

概述

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

????至于程序出現(xiàn)錯(cuò)誤的原因,除了那些所有編程語(yǔ)言共通的原因,還有一些“Scratch 特色”的原因。是由于 Scratch 本身機(jī)制問(wèn)題導(dǎo)致程序執(zhí)行結(jié)果與預(yù)期目標(biāo)不符合。一些經(jīng)典的、由于 Scratch 本身機(jī)制問(wèn)題導(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、氣泡輸出法

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

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

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

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

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

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

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

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

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

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

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

劣勢(shì)

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

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

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

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

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

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

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

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

關(guān)于浮點(diǎn)運(yùn)算的精度丟失問(wè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ù)原始,通過(guò)這種方法能拿到最一手的、未經(jīng)過(guò)任何加工處理、零添加的數(shù)據(jù)。

劣勢(shì):

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

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

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

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

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

凡事無(wú)絕對(duì)……

3、顯示器輸出法

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

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

至于沒(méi)有顯示器的積木,可以通過(guò)變量來(lái)賦予它顯示器。

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

將返回值賦值給變量

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

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

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

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

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

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

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

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

③同文字輸出法

劣勢(shì)

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

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

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

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

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不再增長(zhǎng)(采用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)的腳本,都是難以直接觀察出來(lái)的,這時(shí)候用計(jì)數(shù)法來(lái)進(jìn)行測(cè)試,結(jié)果就一目了然了,一旦計(jì)數(shù)結(jié)果與預(yù)期不符合,那就能進(jìn)一步鎖定BUG所在位置。

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

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

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

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

④具有一定的通用性。

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

預(yù)約試聽(tīng)課

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

主站蜘蛛池模板: 衡水市| 蕉岭县| 麻江县| 天门市| 岳普湖县| 伊宁县| 延寿县| 桓仁| 苍梧县| 昌邑市| 仪陇县| 仁化县| 黑水县| 镇远县| 韶山市| 华蓥市| 化德县| 阳朔县| 富宁县| 陇川县| 新巴尔虎左旗| 巩义市| 南部县| 富平县| 麟游县| 榆社县| 营山县| 鹤庆县| 曲阳县| 新疆| 郎溪县| 内江市| 马尔康县| 广南县| 开封县| 大理市| 方正县| 天等县| 银川市| 洛扎县| 江都市|