依次比较条件,
从三条路线中选择一条
今天学习 C 语言的比较运算符和 else if,让程序根据输入,把一个整数判断为正数、负数或零。
认识三个比较运算符
> 用来判断是否大于,< 用来判断是否小于,== 用来判断两边是否相等。它们都会产生“条件成立”或“条件不成立”的结果。
number > 0:是否大于零number < 0:是否小于零number == 0:是否等于零
区分赋值与相等判断
= 是赋值符号,会把右边的值保存到左边变量;== 才是在询问两边是否相等。少写一个等号,程序表达的意思就完全不同。
day6.c
number = 0; /* 把 0 赋值给 number */
number == 0 /* 判断 number 是否等于 0 */使用 else if 增加判断路线
程序先判断输入是否大于零。第一条不成立时,才继续检查是否小于零;如果前两条都不成立,最后进入 else。
day6.c
if (number > 0)
{
printf("这是一个正数\n");
}
else if (number < 0)
{
printf("这是一个负数\n");
}
else
{
printf("这个数是零\n");
}为什么最后可以直接写 else
一个整数如果既不大于零,也不小于零,就只能等于零。因此最后不必再次写 else if (number == 0),直接使用不带条件的 else 即可。
一组 if / else if / else 会从上到下检查。一旦某个分支成立并执行,程序就会跳过同组剩余分支,再继续执行判断结构后面的语句。
三条路线都实际验证
输入 8:这是一个正数
输入 -5:这是一个负数
输入 0:这个数是零
三次生成和运行都成功,程序退出代码均为 0。我也能够按顺序说明每个条件是否成立,以及程序最终在哪个分支停止检查。
今天真正掌握的内容
- 理解
>、<和==的含义 - 能够区分赋值符号
=与相等判断== - 会使用
else if增加新的判断路线 - 理解条件从上到下检查,命中一个分支后会跳过其余分支
- 能用
if / else if / else判断正数、负数和零 - 能先预测执行路线,再用不同输入验证边界情况
下一步将学习 >= 和 <=,继续练习包含边界值的范围判断。