[C程序设计] 04 - 选择语句

C 语言有两种选择语句:

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

一、if选择语句

if语句的一般形式:

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

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

if (表达式) 语句1
else if (表达式2) 语句2
else 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 

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程序设计(第五版)》

你可能感兴趣的:(c)