博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【DotNet 技能系列】6. C#中逻辑运算符与优先级
阅读量:6162 次
发布时间:2019-06-21

本文共 1117 字,大约阅读时间需要 3 分钟。

逻辑运算符: &&, ||, !

逻辑表达式:条件表达式1 &&(||) 条件表达式2

&& 运算规则:只有条件表达式1,2都为True时结果才为True

|| 运算规则:只要一个条件表达式为True,结果为True

!运算规则:条件表达式的值为True时,结果为False,值为False是,结果为True

 

算术运算符、关系运算符、逻辑运算符优先级

A !为单目运算符,优先级比算术运算符、关系运算符高

B. 算术运算符号的优先级比关系、逻辑运算符优先级高

C  逻辑运算符&& 和||的优先级要比关系运算符低!(通常表达式1和表达式2就是关系运算符,所有先进行关系运算,然后进行逻辑运算)

 

按元划分运算优先级:括号优先级> 一元运算符号优先级>二元运算符号优先级>三元运算符号优先级

// 括号的不同写法int result = (3+4) * 5;int result2 = (int) 3.14 + 4; //7, 与double result3 = 3.14 + 4 结果为7.14不同是因为括号的优先级!

按运算符类型划分:括号优先级> 算术运算符> 关系运算符> 逻辑运算符

 

注意:运算符优先级大于赋值运算符

 

典雅小筑吧:C#运算符优先级表()

 

与或的短路问题

与短路:当第一个表达式的值为False时候,第二个表达式不会运行

或短路:当第一个表达式的值为True时候,第二个表达式不会运行。

与或短路的结果,如果表达式中存在变量赋值运算,那么就不会执行运算而得不到想要的结果!

// 与或的短路问题            int num1 = 10;            int num2 = 5;            bool result = ++num1 == 10 && ++num2 > 1; // 与短路,第一个False后面就不会参加运算            Console.WriteLine("num1 = {0}, num2 = {1}", num1, num2); // num1  = 11, num2 = 5            bool result2 = ++num1 != 5 || ++num2 > 1; // 或短路,第一个True后面就不会参加运算            Console.WriteLine("num1 = {0}, num2 = {1}", num1, num2); // num1 = 12, num2 = 5

转载于:https://www.cnblogs.com/zengyongjoy/archive/2012/08/28/2660918.html

你可能感兴趣的文章
js插件---图片懒加载echo.js结合 Amaze UI ScrollSpy 使用
查看>>
java中string和int的相互转换
查看>>
P1666 前缀单词
查看>>
HTML.2文本
查看>>
Ubuntu unity安装Indicator-Multiload
查看>>
解决Eclipse中新建jsp文件ISO8859-1 编码问题
查看>>
7.对象创建型模式-总结
查看>>
【论文阅读】Classification of breast cancer histology images using transfer learning
查看>>
移动端处理图片懒加载
查看>>
jQuery.on() 函数详解
查看>>
谈缓存和Redis
查看>>
【转】百度地图api,根据多点注标坐标范围计算地图缩放级别zoom自适应地图
查看>>
用户调研(补)
查看>>
ExtJS之开篇:我来了
查看>>
☆1018
查看>>
oracle 去掉空格
查看>>
6.13心得
查看>>
Runtime类
查看>>
eclipse decompiler
查看>>
记一个搜索网盘资源的网站
查看>>