Scratch 與 mBot 中「巢狀條件判斷」與「變數改變」的概念

Scratch 與 mBot 中「巢狀條件判斷」與「變數改變」的概念

一、「巢狀條件判斷」

以下左右二個看似等價的程式,因 mBot 外部改應器隨著時間一直在變,這種不固定的特性可以凸顯出程式的差異,說明二者其實是不同的程式意義,並觀察出巢狀條件判斷的 if-else 互斥特性。

當運用變數紀錄 mBot 外部感應器的狀態時,可以確保條件判斷時的不變性。

二、「變數改變」

前述例子中,使用變數紀錄狀態雖可以確保條件判斷時的不變性。但面對 Scratch 這類支援平行 (Concurrent) 同時發生的特性,仍須注意程式的執行順序。以下例子,嘗試設計這類「搶先」的可能性,導致兩個程式片段的順序不易預測,最終造成不同執行結果。