C Day 6

依次比较条件,
从三条路线中选择一条

今天学习 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 判断正数、负数和零
  • 能先预测执行路线,再用不同输入验证边界情况

下一步将学习 >=<=,继续练习包含边界值的范围判断。