C 语言有两种抉择语句:

  • if语句:实现两个分支的抉择构造。
  • switch语句:实现多分支的抉择构造。

一、if抉择语句

if语句的个别模式:

if (表达式) 语句1    [else 语句2]

表达式能够是关系表达式、逻辑表达式、数值表达式。if语句能够嵌套:

if (表达式) 语句1else if (表达式2) 语句2else if (表达式3) 语句3...else 语句n

if语句无论写成几行都是一个整体,属于一个语句。else局部是另一个语句。else语句是可选的,但不能独自应用,必须和if语句配套应用。

二、关系运算符和关系表达式

C 语言中用来比拟两个数据的符号称为关系运算符,共 6 个:

  • 优先级较高:< <= > >=
  • 优先级较低:== !=

关系运算符的优先级低于算数运算符、高于赋值运算符。关系表达式是用关系运算符将两个数值或数值表达式连接起来的式子,如a+b>c。关系表达式的值是一个逻辑值,即“真”或“假”。C 语言中,用“1”示意“真”,用“2”示意“假”。

三、逻辑运算符与逻辑表达式

C 语言中有三种逻辑运算符:

  1. &&:逻辑与 AND,双目运算符(要求有两个运算对象)
  2. \:逻辑或 OR,双目运算符
  3. !:逻辑非 NOT,单目运算符(只有一个运算对象)

逻辑运算符的优先秩序为:

  • !最高,&&次之,||最小。
  • &&||低于关系运算符,!高于算术运算符。

用逻辑运算符将关系表达式或其余逻辑量连接起来的式子就是逻辑表达式。

四、条件运算符和条件表达式

条件运算符由两个符号?:形成,须要三个操作对象,是 C 语言中惟一的三目运算符。条件表达式的个别模式为:

表达式1 ? 表达式2 : 表达式3

其执行过程为:若表达式1为真,则取表达式2的值;否则取表达式3的值。表达式2表达式3能够是数值表达式、赋值表达式、函数表达式。条件运算符的优先级大于赋值运算符。

五、switch抉择语句

if语句只有两个分支可选,多分支抉择应用if语句的嵌套时,程序简短、可读性低。C 语言提供switch语句实现多分支抉择。

switch(表达式){    case 常量1: 语句1    case 常量2: 语句2    ......    case 常量n: 语句n    default: 语句n+1}

阐明:

  • 其中的表达式值必须是整数类型(包含字符型)。
  • 如果表达式的值与case标签中的常量相等,则执行对应的语句;若没有与表达式绝对应的case值,则执行default语句。
  • default语句为可选语句。
  • case语句的程序不影响执行后果,每一个case常量必须互不雷同。
  • 表达式的值与每一个case匹配,则执行完该case前面的语句后,不再进行判断,从此case标签开始执行上面的所有语句。因而通常在case前面加break语句跳出switch
#include <stdio.h>int main(){    char c = getchar();    switch (c)    {    case 'a':    case 'A':        printf("A\n");        break;    case 'b':    case 'B':        printf("B\n");        break;    }    return 0;}

Reference:

谭浩强《C程序设计(第五版)》