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


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


最后总结一下:


& 和 &&:


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


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


| 和 ||:


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


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



目录
相关文章
|
4月前
|
C#
C#中的比较和逻辑运算符
C#中的比较和逻辑运算符
|
5月前
|
C#
C# 运算符详解:包含算术、赋值、比较、逻辑运算符及 Math 类应用
运算符用于对变量和值执行操作。在C#中,有多种运算符可用,包括算术运算符、关系运算符、逻辑运算符等。
71 1
|
5月前
|
C# 图形学
【Unity 3D】C#控制语句break、continue及算数运算符和逻辑运算符的讲解(附测试代码)
【Unity 3D】C#控制语句break、continue及算数运算符和逻辑运算符的讲解(附测试代码)
54 1
|
5月前
|
开发框架 前端开发 .NET
C#编程与Web开发
【4月更文挑战第21天】本文探讨了C#在Web开发中的应用,包括使用ASP.NET框架、MVC模式、Web API和Entity Framework。C#作为.NET框架的主要语言,结合这些工具,能创建动态、高效的Web应用。实际案例涉及企业级应用、电子商务和社交媒体平台。尽管面临竞争和挑战,但C#在Web开发领域的前景将持续拓展。
169 3
|
5月前
|
SQL 开发框架 安全
C#编程与多线程处理
【4月更文挑战第21天】探索C#多线程处理,提升程序性能与响应性。了解C#中的Thread、Task类及Async/Await关键字,掌握线程同步与安全,实践并发计算、网络服务及UI优化。跟随未来发展趋势,利用C#打造高效应用。
181 3
|
12天前
|
API C#
C# 一分钟浅谈:文件系统编程
在软件开发中,文件系统操作至关重要。本文将带你快速掌握C#中文件系统编程的基础知识,涵盖基本概念、常见问题及解决方法。文章详细介绍了`System.IO`命名空间下的关键类库,并通过示例代码展示了路径处理、异常处理、并发访问等技巧,还提供了异步API和流压缩等高级技巧,帮助你写出更健壮的代码。
26 2
|
16天前
|
SQL 开发框架 安全
并发集合与任务并行库:C#中的高效编程实践
在现代软件开发中,多核处理器普及使多线程编程成为提升性能的关键。然而,传统同步模型在高并发下易引发死锁等问题。为此,.NET Framework引入了任务并行库(TPL)和并发集合,简化并发编程并增强代码可维护性。并发集合允许多线程安全访问,如`ConcurrentQueue<T>`和`ConcurrentDictionary<TKey, TValue>`,有效避免数据不一致。TPL则通过`Task`类实现异步操作,提高开发效率。正确使用这些工具可显著提升程序性能,但也需注意任务取消和异常处理等常见问题。
28 1
|
25天前
|
安全 程序员 编译器
C#一分钟浅谈:泛型编程基础
在现代软件开发中,泛型编程是一项关键技能,它使开发者能够编写类型安全且可重用的代码。C# 自 2.0 版本起支持泛型编程,本文将从基础概念入手,逐步深入探讨 C# 中的泛型,并通过具体实例帮助理解常见问题及其解决方法。泛型通过类型参数替代具体类型,提高了代码复用性和类型安全性,减少了运行时性能开销。文章详细介绍了如何定义泛型类和方法,并讨论了常见的易错点及解决方案,帮助读者更好地掌握这一技术。
43 11