短路与 短路或 不短路与 不短路或

先来看牛客的一道题

如下语句通过算术运算和逻辑运算之后i和 j的结果是( )
int i=0;
int j=0;
if((++i>0)||(++j>0))
{
//打印出i和j的值。
}

A i=0;j=0
B i=1;j=1
C i=0;j=1
D i=1;j=0 

答案是:D

为什么呢?

考察短路逻辑的用法

&&|| 分别为 短路与短路或 

&& 若前面的表达式结果为false,整个逻辑表达式的结果就为false,所以后面的表达式无论true或者false都无法影响整个逻辑表达式的结果,所以为了提高代码执行效率,后面的表达式就不会执行

同理,若前面的表达式为true,则后面的表达式也无需计算

& | 不短路与不短路或

无论什么情况,前面的和后面的表达式都要执行

扫描二维码关注公众号,回复: 6516824 查看本文章

猜你喜欢

转载自blog.csdn.net/weixin_43224539/article/details/91391351