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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 于振发 中级黑马   /  2013-9-27 19:49  /  905 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

逻辑与和逻辑或的短路问题
int a=5;
int b=10;
bool  result=++a>50&&++b>10;
当程序在执行这个代码的时候,先判断逻辑与的第一个表达式,因为++a是前加所以把自身的值加一来参与运算所以6>50 不成立当在逻辑与表达式中被逻辑与连接起来的两个关系表达式有一个不成立是整个表达式的结果为false;所以程序没有必须想后执行了这样就会短路了后面的程序,所以在输出b的时候b的值还是原值.
逻辑或的短路问题
int a=5;
int b=10;
bool  result=++a>5||++b>1;
当程序执行这个的时候因为逻辑或表达式有一个条件成立则整个表达式的值为true,所以当程序执行到第一个表达式的时候因为++a前加所以把自身加一参与运算然后6>5所以第一个条件成立,在逻辑或表达式有有一个条件成立整个表达式的值为true,所以程序没必要向后执行了,所以输出b的值还是原值

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马