果果编程课】005 如果魔法 —— 让程序会“选择”!
果果编程第5课:如果魔法 —— 让程序会“选择”!
课程目标(45分钟)
学会 if:让程序根据不同情况,做出不同选择!
核心口诀:如果(条件)就做A,否则做B
整体风格延续
- 口语化故事教学(果果攒钱、精灵冒险)
- 比喻:如果魔法 = “十字路口的选择精灵”
- 结合前几课:变量、列表、图形、lambda
- 逐步递进:从简单判断 → 嵌套判断 → 在map里用if
- 预告下节:compose 魔法(把多个机器连成超级机器)
第一部分:问题引入(5分钟)
老师故事:
“果果攒了好多零花钱,上节课我们用 map 把所有钱都翻倍了!
现在果果要去买最新款小天才手表(2399元)!
如果钱够了 → 果果开心跳舞!🎉
如果钱不够 → 果果伤心继续攒钱 😢
电脑怎么知道‘够不够’?今天教你一个超级魔法:如果魔法!
它就像路口的选择精灵:看情况,带你走不同的路!”
板书十字路口图:1
2
3
4
5
6
7
8┌──────────────┐
│ 钱够吗? │
└──────┬───────┘
│
是 │ 否
┌──▼───┐ ┌──▼───┐
│ 买! │ │ 攒! │
└──────┘ └──────┘
第二部分:认识 if 魔法(15分钟)
1. 基本语法(5分钟)
1 | #lang racket |
运行结果:"可以买!开心!🎉"
解释:
if= 选择精灵启动(> my-money watch-price)= 判断条件(真或假)- 第一个字符串 = 条件为真时做的事
- 第二个字符串 = 条件为假时做的事
比喻:if 就像一个有三个口袋的精灵:
- 放判断问题
- 放“对的时候做的事”
- 放“错的时候做的事”
2. 动手练习(10分钟)
练习1:钱够不够买玩具
改数字试试不同结果!
1 | (define my-money 2000) |
练习2:图形版如果魔法(结合第一课)
1 | (require 2htdp/image) |
练习3:数字判断大挑战
1 | (define score 85) |
老师提示:可以把 if 套 if! 这叫“嵌套判断”
第三部分:如果魔法 + 列表 + map(15分钟)
故事:
“果果有好多朋友的成绩单!我们要给每个人发不同鼓励的话!”
1 | (define scores (list 95 82 68 91 75)) |
结果:'("超级棒!🌟" "很不错!👍" "加油哦!💪" "超级棒!🌟" "加油哦!💪")
小挑战:价格标签升级版(结合第4课)
1 | (define prices (list 10 60 35 120)) |
结果:'("10元(便宜!)" "60元(贵!)" "35元(便宜!)" "120元(贵!)")
第四部分:综合创作(8分钟)
终极任务:果果的冒险选择器
1 | (define energy 80) ; 果果的体力(0-100) |
创作时间:
让孩子们自己设计一个“冒险决策器”:
- 判断体力 + 天气 + 心情 → 决定今天做什么活动
- 或者:判断成绩 + 作业完成 → 决定周末玩多久游戏
老师巡回指导,鼓励多层if!
第五部分:总结与作业(2分钟)
核心口诀if 就是选择魔法:(if 判断题 对的时候做事 错的时候做事)
今天学会了:
- 用
if让程序会判断 - 嵌套
if做多层选择 - 把
if放进map批量判断
回家作业(简单又好玩):
- 写一个“天气预报机”:输入天气(”sunny”/“rainy”),输出今天穿什么衣服
- 用
map+if给(list 45 78 92 65 88)打等级:90+ A,80+ B,70+ C,其他 D

下节课预告
“下节课学 compose 组合魔法 —— 把多个变形机器连成一个超级大机器!
比如:先翻倍 → 再加10 → 再变字符串 → 再加‘元’……一行代码搞定!”
板书总结:1
2
3
4如果魔法 if
(if 条件 真→做事A 假→做事B)
可以嵌套!
可以和 map 一起用 → 批量判断!
教学小贴士
- 多用前几课内容(变量、列表、图形、map)做例子,强化衔接
- 遇到错误就说“选择精灵迷路了,我们帮他指路!”
- 进度快的孩子可以试
cond多条件写法(预告高级魔法)
果果们,今天你们都变成了会“选择”的小魔法师啦!✨