5.1. C逻辑值为短整数(int),真、假分别为1、0。另外,字符、数、指针作为逻辑量时,非0、非空为真(即1),0、空为假(即0)。逻辑运算如下表所示:
表5.1 逻辑运算真值表
左元 | 右元 | !右元 | 左元&&右元 | 左元||右元 |
假(0) | 假(0) | 真(1) | 假(0) | 假(0) |
假(0) | 真(非0) | 假(0) | 假(0) | 真(1) |
真(非0) | 假(0) | 真(1) | 假(0) | 真(1) |
真(非0) | 真(非0) | 假(0) | 真(1) | 真(1) |
5.2. 对于形如
□||□||…
的逻辑式,从左至右计算□的逻辑值,遇到真则提前终止。
5.3. 对于形如
□&&□&&…
的逻辑式,从左至右计算□的逻辑值,遇到假则提前终止。
5.4. 算术、关系、逻辑运算的优先级参见附录C(教材第365页)。
5.5. if语句的格式和功能如下:
(1) 格式一:if(条件) 语句
功能:如果条件成立,方执行语句。
(2) 格式二:if(条件)语句1 else 语句2
功能 如果条件成立,执行语句1,否则执行语句2。
注意:else不可独立使用,它与其前最近一个尚未配对的if配对,为避免歧义,通常只在else中嵌套if语句。
5.6. 条件表达式的格式和功能如下:
格式:条件?表达式1:表达式2
功能:如果条件成立,取表达式1的值,否则取表达式2的值。
说明:条件表达式可以嵌套,与其前最近一个尚未配对的if配对。
5.7. switch语句的格式和功能如下:
格式:
switch(表达式)
{
…
case 常量i: 语句组i
…
default: 语句组n+1
}
功能:如果表达式的值等于常量i,则从语句组i开始执行,否则执行语句组n+1。
说明:
(1) “表达式”的值和“常量”为整型(包括字符型)。
(2) switch中的每个语句组称作一个分支,为使各分支独立,通常以break、return、exit等语句结尾。另外,“default: 语句组n+1”可以缺省。
5.8. break语句的格式和功能如下:
格式:break;
功能:结束本层switch语句或本层循环语句。
说明:break语句只能用于switch语句和循环。