💥什麼是「選擇結構」?
依據不同條件的判斷結果,選擇不同的步驟來執行
依據不同條件的判斷結果,選擇不同的步驟來執行
比如想要跟朋友去逛街看電影,是先逛街好,還是先看電影呢?要到台北找朋友,是搭火車好,還是搭高鐵呢?口渴想買杯飲料,當你來到飲料店後,面對數十種的飲料又要點哪一種呢?
在日常生活中,我們會常遇到一些需要面對選擇來做決定的事情:
🔆 這次段考數學如果考100分的話,爸爸就要帶我去遊樂園玩
🔆 若明天天氣很好的話,我們就去動物園,否則就待在家裡
🔆 輸入數學的學期成績,🔹59分以下的,就評為「丁」;否則🔹高於90分的,評為「優」;🔹80~89分的,評為「甲」;🔹70~79分的,評為「乙」;🔹60~69分的,評為「丙」;
🔆 玩翻牌遊戲,共有四種顏色,每次🔹如果翻到「紅色」,就扣1分;🔹如果翻到「黃色」,就加1分;🔹如果翻到「綠色」,就扣2分;🔹如果翻到「藍色」,就加2分
這些事件是需要你做選擇的,如果沒有選擇,那下一步就不知要往那兒走,而當你要選擇時,就須有一個強而有力的理由,這個理由就是所謂的「條件判斷」。
在程式語言中,如果是面對這種程式執行路徑需要抉擇的問題,可以用「選擇結構」來處理。「選擇結構」是一種利用條件判斷敘述來選擇程式執行路徑的程式結構。
「選擇結構」的情境基本上可分為三種,分別是單向選擇結構、二元選擇結構以及多重選擇結構
📌單向選擇結構
只定義了條件成立時要執行的敘述。
依據設立的條件判斷式進行判斷是否成立,若成立(True)時,就執行該指令;反之,若不成立(False)時,則跳過該指令直接往下執行。
在SCRATCH程式中,就是以〈如果...那麼...〉積木來呈現單向選擇結構
⏳假設問題:期中考前,小美的爸爸跟她約定了如果五個科目總分超過490分,就要帶她去吃麥當勞。
流程圖
SCRATCH積木堆疊(改)
📌二元選擇結構
分別定義了條件成立與條件不成立時要執行的敘述。
依據設立的條件進行判斷是否成立,若成立(True)時,就執行條件成立下的指令A;反之,若不成立(False)時,則執行條件不成立下的指令B。
在SCRATCH程式中,就是以〈如果...那麼...否則...〉積木來呈現二元選擇結構
⏳假設問題:期中考前,小美的爸爸跟她約定了如果五個科目總分超過490分,就要帶她去吃麥當勞,反之,如果沒有超過490分,就要罰她洗碗一週。
流程圖
SCRATCH積木堆疊(改)
📌多重選擇結構
串接了數個雙向選擇結構,依據設立的條件進行判斷,在不同的條件成立時,分別進行不同的處理步驟。
依據設立的條件進行判斷,在不同的條件成立時,分別進行不同的處理步驟,當條件式1 成立時,執行程式區塊指令A的程式之後結束程式;否則判斷條件式2 是否成立,當條件式2 成立時執行程式區塊指令B的程式之後結束程式;否則判斷條件式3 是否成立,當條件式3 成立時執行程式區塊指令C的程式之後結束程式;否則依序判斷其它條件式是否成立,若都不成立時,執行程式區塊指令else 後結束程式。
在SCRATCH程式中,就是以〈如果...那麼...〉和〈如果...那麼...否則...〉這二種積木的嵌套來呈現多重選擇結構
⏳假設問題:期中考前,小美的爸爸跟她約定了如果五個科目總分超過490分,就要帶她去吃麥當勞;如果是486分~490分,就請她喝一杯楊枝甘露;如果是480分~485分,就請她喝一杯珍珠奶茶;反之,上述條件都沒有達到,就要罰她洗碗一週。
流程圖
SCRATCH積木堆疊(改)