把边界包含进条件,
让成绩判断更准确
今天学习 >= 和 <=,理解“等于边界”也是条件的一部分,并用有顺序的多分支判断处理合法成绩、及格线和非法输入。
为什么只写大于还不够
如果及格线是 60 分,条件 score > 60 不会包含刚好 60 分。要让边界值也成立,需要写成 score >= 60。
>=:大于或等于<=:小于或等于
第一次边界测试中,输入 60 会输出“及格”,输入 59 会输出“未及格”,说明 >= 正确包含了及格线本身。
独立判断会分别执行
练习过程中曾使用两组独立的 if / else:第一组判断是否达到 60 分,第二组判断是否超过 100 分。输入 101 时,两组判断会分别输出“及格”和“成绩超过100分”。
这不是程序矛盾,而是因为两组判断互不相属,各自都会执行。要让程序只选择一种最终结果,需要把条件整理为同一组 if / else if / else。
按顺序划分成绩范围
day7.c
if (score < 0)
{
printf("成绩不能小于0分\n");
}
else if (score <= 59)
{
printf("未及格\n");
}
else if (score <= 100)
{
printf("及格\n");
}
else
{
printf("成绩不能大于100分\n");
}第三个条件为什么只写上界
程序能到达 score <= 100,说明前面的 score <= 59 已经不成立。因此当前成绩自然至少是 60,只需要继续检查它是否没有超过 100。
这让我进一步理解:多分支判断不仅要看当前条件,还要记住前面的条件已经排除了哪些值。
六个边界值全部验证
-1:成绩不能小于0分0:未及格59:未及格60:及格100:及格101:成绩不能大于100分
六次生成和运行都成功,退出代码均为 0。这些输入覆盖了下界外、合法下界、及格线两侧、合法上界和上界外。
今天真正掌握的内容
- 理解
>=和<=都包含等于边界 - 能准确区分“大于等于”与“小于等于”的方向
- 理解两组独立判断会分别执行
- 理解一组多分支判断最多只命中一个分支
- 能按从小到大的顺序划分成绩范围
- 会主动测试边界值和边界外的输入
下一次是 C 语言第 8 天,将进行第一次 C 语言阶段复习与检测,只复习和运用前七天已经学过的内容。