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 语言中有三种逻辑运算符:
&&
:逻辑与 AND,双目运算符(要求有两个运算对象)\
:逻辑或 OR,双目运算符!
:逻辑非 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 程序设计(第五版)》