Scratch 條件判斷常見問題─兩個互補的 IF-THEN 判斷式

Scratch 條件判斷常見問題─兩個互補的 IF-THEN 判斷式

以下左右兩側看似等價的條件判斷式,其實並不相等。

  • 左側:IF (條件一) THEN (動作一) ELSE (動作二)
  • 右側:
    IF (條件一) THEN (動作一)
    IF (條件一不成立) THEN (動作二)

在未涉入時間因素(程式執行狀態隨時間變化)下,以上右側的條件判斷並不會出現錯誤。

右側兩個條件判斷,會進行兩次的條件評估(evaluation),可以先後涵蓋「大於5」與「不大於5」的所有情況,並執行對應的動作。

但右側為兩次獨立的條件判斷,且涉入時間因素。即前一個條件判斷式的對應動作,如果改變了「變數X」的值,隨後第二次條件判斷式,將不如預期可以涵蓋「不成立」的那一部份。

以下程式,特別凸顯左右兩側程式的差異及潛在的問題,應避免使用兩個互補的 IF-THEN 判斷式來代替單一的 IF-THEN-ELSE。

 

https://scratch.mit.edu/projects/167233857/

相關連結:https://scratch.mit.edu/projects/167233857/