C#(七)之逻辑运算符

简介: 算数运算符的优先级大于逻辑运算符。下面是!、 &&、 || 三个运算符的简单应用。

QQ图片20220426104428.jpg

首先说明,算数运算符的优先级大于逻辑运算符。


把这个单独拿出来记录一下,是因为他和PHP不一样。


不能习惯的使用PHP中的那套对于C#的逻辑运算符的逻辑。


1:&& 逻辑与运算符


实例:


bool a = true;
bool c = true;
bool b = false;
bool d = false;
if(a && c){
   Console.WriteLine(1);
}
if(a && b){
   Console.WriteLine(2);
}
if(a && d){
   Console.WriteLine(3);
}
if(b && d){
   Console.WriteLine(4);
}


以上的输出结果只有1.重点来了


在PHP中,同真为真,同假也为真 在C#中,同真为真,同假为假。


2:|| 逻辑或运算符


实例:


bool a = true;
bool c = true;
bool b = false;
bool d = false;
if(a || c){
   Console.WriteLine(1);
}
if(a || b){
   Console.WriteLine(2);
}
if(a || d){
   Console.WriteLine(3);
}
if(b || d){
   Console.WriteLine(4);
}


以上算式输出结果为123;


这个与PHP中的逻辑是一样的,只要有一个为真就是真。


两个都是假,才为假。


3:! 逻辑非运算符:说白了就是取反


bool a = true;
bool c = true;
bool b = false;
bool d = false;
if(!(a || c)){
    Console.WriteLine(1);
}
if(!(a || b)){
    Console.WriteLine(2);
}
if(!(a || d)){
    Console.WriteLine(3);
}
if(!(b || d)){
    Console.WriteLine(4);
}


以上算式结果输出为4


上边已经说过。前三个等式为真,取反之后为假,所以,没有输出。只有最后一个算式,本身为假,取反之后为真。


最后总结一下:


& 和 &&:


相同点 : 两者都是表达当左右两边操作数都为真时,才为真.


不同点 : &运算符需要判断两边的操作数,而&&运算符则是根据第一个操作数的真假进而判断第二个操作数,也就是说当第一个操作数为假时,就不会再判断第二个操作数了,因为第一个操作数为假也就意味着无论第二个操作数真假,返回的结果都为假.


| 和 ||:


相同点 : 两者都是表达当左右两边操作数有一个为真时,就返回真.


不同点 : |运算符需要判断两边的操作数,而||运算符则是根据第一个操作数的真假进而判断第二个操作数,也就是说当第一个操作数为真时,就不会再判断第二个操作数了,因为第一个操作数为真也就意味着无论第二个操作数真假,返回的结果都为真.



目录
相关文章
C#中的比较和逻辑运算符
C#中的比较和逻辑运算符
148 0
C# 运算符详解:包含算术、赋值、比较、逻辑运算符及 Math 类应用
运算符用于对变量和值执行操作。在C#中,有多种运算符可用,包括算术运算符、关系运算符、逻辑运算符等。
175 1
|
C# 图形学
【Unity 3D】C#控制语句break、continue及算数运算符和逻辑运算符的讲解(附测试代码)
【Unity 3D】C#控制语句break、continue及算数运算符和逻辑运算符的讲解(附测试代码)
119 1
|
6天前
|
XML 前端开发 C#
C#编程实践:解析HTML文档并执行元素匹配
通过上述步骤,可以在C#中有效地解析HTML文档并执行元素匹配。HtmlAgilityPack提供了一个强大而灵活的工具集,可以处理各种HTML解析任务。
53 19
|
2月前
|
监控 算法 C#
C#与Halcon联合编程实现鼠标控制图像缩放、拖动及ROI绘制
C#与Halcon联合编程实现鼠标控制图像缩放、拖动及ROI绘制
272 0
|
11月前
|
C# 开发者
C# 一分钟浅谈:Code Contracts 与契约编程
【10月更文挑战第26天】本文介绍了 C# 中的 Code Contracts,这是一个强大的工具,用于通过契约编程增强代码的健壮性和可维护性。文章从基本概念入手,详细讲解了前置条件、后置条件和对象不变量的使用方法,并通过具体代码示例进行了说明。同时,文章还探讨了常见的问题和易错点,如忘记启用静态检查、过度依赖契约和性能影响,并提供了相应的解决建议。希望读者能通过本文更好地理解和应用 Code Contracts。
205 3
|
10月前
|
存储 安全 编译器
学懂C#编程:属性(Property)的概念定义及使用详解
通过深入理解和使用C#的属性,可以编写更清晰、简洁和高效的代码,为开发高质量的应用程序奠定基础。
558 12
|
11月前
|
设计模式 C# 图形学
Unity 游戏引擎 C# 编程:一分钟浅谈
本文介绍了在 Unity 游戏开发中使用 C# 的基础知识和常见问题。从 `MonoBehavior` 类的基础用法,到变量和属性的管理,再到空引用异常、资源管理和性能优化等常见问题的解决方法。文章还探讨了单例模式、事件系统和数据持久化等高级话题,旨在帮助开发者避免常见错误,提升游戏开发效率。
400 4
|
安全 程序员 编译器
C#一分钟浅谈:泛型编程基础
在现代软件开发中,泛型编程是一项关键技能,它使开发者能够编写类型安全且可重用的代码。C# 自 2.0 版本起支持泛型编程,本文将从基础概念入手,逐步深入探讨 C# 中的泛型,并通过具体实例帮助理解常见问题及其解决方法。泛型通过类型参数替代具体类型,提高了代码复用性和类型安全性,减少了运行时性能开销。文章详细介绍了如何定义泛型类和方法,并讨论了常见的易错点及解决方案,帮助读者更好地掌握这一技术。
197 11