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:
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。