关系运算、逻辑运算
关系运算、逻辑运算【恒星】
关系运算符
| 运算符 | 名称 | 示例 | 功能 |
|---|---|---|---|
| < | 小于 | a<b | a小于b时返回真;否则返回假 |
| <= | 小于等于 | a<=b | a小于等于b时返回真;否则返回假 |
| > | 大于 | a>b | a大于b时返回真;否则返回假 |
| >= | 大于等于 | a>=b | a大于等于b时返回真;否则返回假 |
| == | 等于 | a==b | a等于b时返回真;否则返回假 |
| != | 不等于 | a!=b | a不等于b时返回真;否则返回假 |
关系运算结果
关系运算符的运算结果是逻辑值,也称布尔值(bool)
- 真:非0(true)
- 假:0(false)
三目运算符
三目运算符,也称为三元表达式,运算后会返回两个结果其中之一。
语法:条件 ? 结果1 : 结果2
当满足条件时,返回结果1,否则返回结果2。
int a = 3;
// 判断是否大于 5,是则返回 2,否则返回 1
int b = a>5 ? 2 : 1; // b = 1
// 判断 b 是否是偶数,是则输出 YES,否则输出 NO
printf(b%2==0 ? "YES" : "NO"); // NO
提示:代码示例可以复制到程序文件里运行测试,理解输出结果意义后,再尝试自己编写和修改代码,能灵活运用起来才算是掌握了。
逻辑运算符
逻辑运算符是对逻辑值(布尔值bool)进行运算的符号,其结果是运算后的新逻辑值。
| 运算符 | 名称 | 示例 | 功能 |
|---|---|---|---|
| && | 逻辑与 | a && b | a 和 b 都为真时,结果为真。至少一个为假时,结果为假。 |
| || | 逻辑或 | a || b | a 和 b 至少一个为真时,结果为真。两个都为假时,结果为假。 |
| ! | 逻辑非 | !a | a为假时,结果为真。(非假即真,非真即假) |
printf("%d\n", 1 && 1); // 1
printf("%d\n", 1 && 0); // 0
printf("%d\n", 0 && 0); // 0
printf("\n");
printf("%d\n", 1 || 1); // 1
printf("%d\n", 1 || 0); // 1
printf("%d\n", 0 || 0); // 0
printf("\n");
printf("%d\n", !1); // 0
printf("%d\n", !0); // 1
printf("\n");
int yw = 95; // 语文
int sx = 100; // 数学
// 判断两个 都是 100
printf(yw==100 && sx==100 ? "两个100" : "没有两个100");
// 判断两个 没有都是 100
printf( !(yw==100 && sx==100) ? "没有两个100" : "两个100");
// 判断两个 其中至少一个 100
printf( yw==100 || sx==100 ? "其中至少一个100" : "两个都没有100");
提示:代码示例可以复制到程序文件里运行测试,理解输出结果意义后,再尝试自己编写和修改代码,能灵活运用起来才算是掌握了。
运算优先级
运算优先级不需要专门去记忆,因为运算符太多,一些不常用的记住了,时间长了也会忘记。
建议使用下面方法:
- 常用的运算符在练习时,多用自然就记得;
- 学习时多结合示例使用,不会就查表;
- 不能查表时,使用
()即可;(因为()的优先级最高)

浙公网安备 33010602011771号