5.1 C语言程序中语句的分类

C语言中的语句可以分为以下五类:

  1. 表达式语句 表达式;
  2. 函数调用语句 函数名(实际参数表);
  3. 复合语句 {语句1;语句2;...}
  4. 空语句 ;
  5. 控制语句,可分成以下三类
    1. 条件判断语句——if、switch
    2. 循环执行语句——do while、while、for
    3. 转向语句——break、goto、continue、return

      5.2 选择结构的程序设计

      5.2.1 if语句

  • if(a=5) 语句; //表达式的值永远为非0
  • if(b) 语句; //等价于 if(b!=0) 语句;
  • C语言规定,在缺省 {} 时,else总是与和它上面离它最近的未配对的 if 配对。

    5.2.2 switch语句

    1. switch(表达式) {
    2. case 常量表达式1:
    3. 语句组1;
    4. break;
    5. ...
    6. [default:
    7. 语句组;
    8. break;]
    9. }
  • 表达式一般为int、char和枚举型中的一种,如float类型就不可以。

  • case 后的语句组可以加 {} ,也可以不加。一般不加。
  • 每个 case 必须各不相同 。
  • 每个 case 必须是常量表达式,不能包含变量。
  • 当某个 case 后缺少 break 时,若执行到此处,会继续往下执行,不会跳出switch,知道碰到break为止。
  • 多个 case 字句,可以共用同一语句(组)。

    5.3 关系运算符、逻辑运算符、条件运算符

    | 逻辑运算符 | 含义 | 结合性 | 优先级 | | —- | —- | —- | —- | | ! | 单目、非、表相反 | 右 | 高 | | && | 双目、与、表并且 | 左 | 低 | | || | 双目、或、表或者 | | 更低 |

短路问题:

  • 在求解a&&b&&c时,只有a为真,才会判别b
  • 在求解a||b||c时,只有a为假,才会判别b