备战大晨7月 GESP C++ 1级(9):让程序学会做选择,if-else 分支结构初体验

备战大晨7月 GESP C++ 1级(9):让程序学会做选择,if-else 分支结构初体验
强仔上篇回顾:程序不能只会走直线
上篇咱们聊完顺序结构,文末我卖了个关子,说顺序结构只是信奥路上的热身,真正的考验马上就到。这不,今天按《一本通•编程启蒙C++版》的进度,咱们正式迎来了让程序学会“拐弯”的第一个大坎儿——if-else 分支结构。
大晨的灵魂拷问
大晨一看代码里的 if,好奇地问我:“爸,if 是不是‘如果’的意思?那程序也会像人一样思考吗?”
我摸摸他的头说:“程序自己不会思考,但咱们可以给它设定规则。比如,你如果今天30分钟内做完口算,就能玩20分钟游戏;否则,就老老实实继续做题。这就是 if-else。”
大晨眼睛一亮,立刻来了精神:“那我现在就写个程序,让电脑每天自动给我发游戏时间!”
核心知识点:if-else 的基本骨架
在 C++ 里,if-else 的语法其实特别接地气。我跟大晨说,你就记住这个套路:
如果条件成立,就干第一件事;否则,就干第二件事。
写成代码就是这样:
1 |
|
我特意跟大晨强调,括号里的条件必须是能判断真假的,比如大于、小于、等于。 这小子上次把 == 写成 =,结果程序不管输入多少分都说能玩游戏,自己 debug 了半天才发现问题在哪。
经典例题:奇数还是偶数?
《一本通》里有个特别经典的题:输入一个整数,判断它是奇数还是偶数。
这题刚好能用到之前学的取余运算符 %,简直是绝佳的练手题。我让大晨自己先敲一遍,他在那嘀咕:“除以2有余数就是奇数,没余数就是偶数,太简单了!”
这里分享一段完全可编译的正确代码,适合 GESP 一级的小朋友们参考:
1 |
|
大晨输入 7,屏幕输出 7 是奇数,他激动得拍桌子:“电脑终于听我的话了!”
老父亲陪跑笔记:三大翻车点
别看 if-else 简单,大晨在实际敲代码时,还是踩了几个坑。我总结了一下,这也是很多初学者常犯的错:
- 忘记大括号
{}:很多教材说如果只有一条语句可以不写大括号,但我直接强制要求大晨必须写。初学阶段,大括号就是程序的保险绳,再啰嗦也比出错强。 - 分号乱加:大晨老是在
if (n % 2 == 0)后面顺手敲个分号。我告诉他,if后面加个分号,就相当于“如果条件成立,啥也不干”,电脑会直接跳过执行后面的代码。 - 等号的坑:判断相等一定要用
==,一个等号=是赋值。这个点我至少唠叨了三遍,不知道他记牢没。
小结与下篇预告
今天大晨算是彻底搞懂了最基础的 if-else 两路分支。虽然只是简单的“二选一”,但他已经开始盘算着怎么用代码控制家里的智能音箱了。
不过,现实中的情况可不止两种。比如考试成绩分为优秀、良好、及格和不及格,这时候单纯的一个 if-else 就不够用了。如果遇到多个条件该怎么排兵布阵呢? 下次咱们就来聊聊多重分支的套娃操作,大晨估计又要开始掉头发了。
免责声明:本文仅为大晨备考 GESP C++ 一级的学习记录与个人心得分享,不构成专业编程教学指导。代码仅供交流,如有 bug 欢迎留言指正,老父亲代码水平有限,轻喷哈。


