比較大小
L2|進階A-03-0看題目內容
輸入
8 5
8
輸入
7 7
一樣大
處理三種以上的結果,並用「且」「或」組合條件
有些問題不只兩種結果,例如成績等第有 A、B、C、D、F 五種。這時可以用「如果…否則,如果…否則…」一層一層往下判斷:
如果 條件1:做 A 否則,如果 條件2:做 B 否則,如果 條件3:做 C 否則:做 D
程式會從上往下檢查,遇到第一個成立的條件就走那條路,後面的就不再檢查。
判斷等第時,先問「≥ 90 嗎?」,不成立再問「≥ 80 嗎?」。因為能走到第二個問題,就代表一定不到 90,所以不用再寫「≥ 80 且 < 90」,條件可以寫得很簡單。
另一種情況是好幾個條件要一起考慮,這時用「且」和「或」把條件接起來:
| 積木 | 意思 | 例子 |
|---|---|---|
| A 或 B | 只要有一個成立就成立 | 年齡 < 12 或 年齡 ≥ 65 → 優惠票 |
| A 且 B | 全部都要成立才成立 | 三組「兩邊和 > 第三邊」全部成立 → 是三角形 |
先讀題,再一步一步點開來看。建議每看完一步,就先自己在平台上試著寫寫看。
86
B
從最高分開始,一層一層往下:
詢問並等待 → 分數 如果 分數 ≥ 90:說出 A 否則,如果 分數 ≥ 80:說出 B 否則,如果 分數 ≥ 70:說出 C 否則,如果 分數 ≥ 60:說出 D 否則:說出 F
分數 86:≥ 90?不成立 → ≥ 80?成立 → 說出 B,後面的條件都不用再看。
| 分數 | 第一個成立的條件 | 輸出 |
|---|---|---|
| 95 | ≥ 90 | A |
| 86 | ≥ 80 | B |
| 60 | ≥ 60 | D |
| 45 | 都不成立 | F |
按「載入範例」,範例答案是把下一個「如果…否則…」放進上一個的「否則」裡面,一層一層往下(Scratch 也是這樣寫)。用 Blockly 的話,也可以在「如果」積木上按齒輪,加上「否則,如果」,兩種寫法效果一樣。
10
DISCOUNT
一個人不可能同時小於 12 歲又大於等於 65 歲,所以不能用「且」。題目的意思是只要符合其中一個,就用「或」:
詢問並等待 → 年齡
如果 年齡 < 12 或 年齡 ≥ 65:
說出 DISCOUNT
否則:
說出 NORMAL| 年齡 | 年齡 < 12 | 年齡 ≥ 65 | 或的結果 | 輸出 |
|---|---|---|---|---|
| 10 | 成立 | 不成立 | 成立 | DISCOUNT |
| 30 | 不成立 | 不成立 | 不成立 | NORMAL |
| 65 | 不成立 | 成立 | 成立 | DISCOUNT |
按「載入範例」,看看「或」積木的兩個格子各放了一個比較條件。
照順序完成這些題目。寫完之後,可以在平台上按「載入範例」和自己的寫法比較。
8 5
8
7 7
一樣大
30
HOT
3 4 5
YES
學完之後,檢查看看你能不能做到這些事。有做不到的,就回到上面對應的地方再看一次。