A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

今天看到老师的视频中有讲逻辑与和逻辑或的短路问题,听后感觉很是不错,与大家分享一下。

逻辑与和逻辑或的短路问题:
逻辑与:
int a=5,b=18;
bool result=++a>100&&++b>10;//由于&&前已经判断出++a之后++a>100为false,所以后面的++b>10就不再计算个,故有b仍为18
Console.WriteLine("a的值为{0},b的值为{1}",a,b);
逻辑或:
int a=5,b=18;
bool result=++a>1||++b>10;//由于&&前已经判断出++a之后++a>1为true,所以后面的++b>10就不再计算个,故有b仍为18
Console.WriteLine("a的值为{0},b的值为{1}",a,b);



评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

6 个回复

倒序浏览
逻辑与 是只要第一个是false,那么就不会去执行第二个了,
逻辑或 是只要第一个是true,就不执行第二个,
这就是短路。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
主要是逻辑或  和逻辑与特性的问题   很好  经常分享哈
回复 使用道具 举报
谢谢你分享你的收获!~
回复 使用道具 举报
所以,个人觉得自加,自减这样的运算符还是在逻辑表达式中少用,呵呵,如果出了问题,还真不是一般的麻烦.
回复 使用道具 举报
不错饿  谢谢你的分享
回复 使用道具 举报
黄涛 中级黑马 2012-7-16 22:38:38
7#
逻辑与 是只要第一个是false,那么就不会去执行第二个了,
逻辑或 是只要第一个是true,就不执行第二个,
这是正解
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马