第四章 选择结构程序设计
4.1逻辑量
4.1.1逻辑量的概念
条件判断的结果用逻辑量表示。
- 条件判断的结果只有成立于不成立两种。
- 成立表示1,不成立表示0。
- C语言中规定:0为0逻辑假,非0为1
4.1.2关系表达式
1.关系运算符
六种运算符:<, >, <=, >=, ==, !=。
- 其中“>,>=,<,<=”的优先级相同且高于“==,!=”相同优先级。
2.关系表达式:有关系运算符将两个操作数连接起来的表达式
4.1.3逻辑运算符和逻辑表达式
1.三种逻辑运算符:&&(逻辑与), ||(逻辑或),!(逻辑非)
- 优先级比较:"!">"&&">"||"
2.逻辑表达式:用逻辑运算符将运算对象连接起来的符合C语言语法规则的表达式。( 运算对象是逻辑量,运算结果也是逻辑量 ) 一般形式:逻辑量 逻辑运算符 逻辑量
3.逻辑运算的短路
“&&”和“||”在运算时,存在运算短路。
例:
//下面代码主要为了说明逻辑运算的短路问题,不存在if语句
void main()
{
int a, b, c, d;
scanf_s("%d,%d,%d,%d", &a, &b, &c, &d);
if (++a < ++b && ++c < ++d) ++c;
printf("\na=%d,b=%d,c=%d,d=%d\n", a, b, c, d);
if (++a < --b && --c < d--) ++c;
printf("\na=%d,b=%d,c=%d,d=%d\n", a, b, c, d);
if (++a < ++b || ++c < ++d) ++c;
printf("\na=%d,b=%d,c=%d,d=%d\n", a, b, c, d);
if (++a < --b || --c < d--) ++c;
printf("\na=%d,b=%d,c=%d,d=%d\n", a, b, c, d);
}
//输入3,4,2,7
//输出:\n
//a = 4, b = 5, c = 4, d = 8
//\n
//a = 5, b = 4, c = 4, d = 8
//\n
//a = 6, b = 5, c = 6, d = 9
//\n
//a = 7, b = 4, c = 6, d = 8