欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 维修 > C 语言逻辑运算符:组合判断,构建更复杂的条件

C 语言逻辑运算符:组合判断,构建更复杂的条件

2025/5/6 10:49:35 来源:https://blog.csdn.net/weixin_41489908/article/details/147721894  浏览:    关键词:C 语言逻辑运算符:组合判断,构建更复杂的条件

各类资料学习下载合集

​​https://pan.quark.cn/s/8c91ccb5a474​​

在 C 语言编程中,我们已经学习了如何使用比较运算符(如 ​​==​​​, ​​<​​​, ​​>​​)来判断两个值之间的关系,从而得到“真”或“假”的结果。但很多时候,我们需要根据多个条件的组合来进行判断。例如,判断一个人是否符合“年龄大于 18 岁 并且 拥有驾驶执照”,或者判断一个订单是否满足“金额超过 100 元 或者 是 VIP 用户”。

这时,我们就需要用到 C 语言的逻辑运算符。逻辑运算符用于连接和操作这些“真”或“假”的逻辑值,从而构建出更复杂、更强大的条件表达式。

今天,我们就来深入学习 C 语言中的三个基本逻辑运算符:逻辑非、逻辑与和逻辑或,并通过详细的代码示例来展示它们的用法和特性。


1. C 语言中的“真”与“假”

在深入了解逻辑运算符之前,需要再次强调 C 语言中对“真”和“假”的表示方式(尤其是在 C99 标准引入 ​​_Bool​​ 类型之前,以及在很多实际应用中):

  • 假 (False):用整数 0 表示。
  • 真 (True):用任何非零整数表示。通常为了方便和习惯,我们用 1 表示真。

逻辑运算符的操作数通常是比较表达式的结果(它们返回 0 或 1),或者任何整数值。逻辑运算符的运算结果也是整数 0 或 1。


2. 逻辑非运算符 (​​!​​)

逻辑非运算符是一个单目运算符,它只需要一个操作数,并且会将其逻辑值取反。

  • 如果操作数为真(非零),则 ​​!​​ 运算符返回假(0)。
  • 如果操作数为假(0),则 ​​!​​ 运算符返回真(1)。

你可以简单理解为:​​!0​​ 是 1,​​!任何非零值​​ 是 0。

语法:

!expression

示例:

int is_valid = 1; // 假设 1 表示真
int is_empty = 0; // 假设 0 表示假printf("!is_valid 的结果是: %d\n", !is_valid); // 预期: !1 -> 0
printf("!is_empty 的结果是: %d\n", !is_empty); // 预期: !0 -> 1
printf("!5 的结果是: %d\n", !5); // 预期: !非零 -> 0
printf("!0 的结果是: %d\n", !0); // 预期: !0 -> 1

3. 逻辑与运算符 (​​&&​​)

逻辑与运算符是一个双目运算符,它需要两个操作数。只有当两个操作数都为真时,​​&&​​ 运算符的结果才为真。如果其中任何一个操作数为假,结果就为假。

这相当于日常生活中的“并且”关系。

语法:

expression1 && expression2

真值表:

expression1

expression2

expression1 && expression2

真 (非零)

真 (非零)

真 (1)

真 (非零)

假 (0)

假 (0)

假 (0)

真 (非零)

假 (0)

假 (0)

假 (0)

假 (0)

示例:

int age = 25;
int has_license = 1; // 1表示有驾照// 判断是否成年且有驾照
int is_eligible = (age >= 18 && has_license);
printf("成年 && 有驾照 (%d >= 18 && %d): %d\n", age, has_license, is_eligible); // 预期: (真 && 真) -> 1age = 16;
has_license = 1;
is_eligible = (age >= 18 && has_license);
printf("成年 && 有驾照 (%d >= 18 && %d): %d

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词