逻辑运算的短路特性(&&,||)
程序员文章站
2024-02-02 18:27:16
...
文章目录
||运算
表达式A || 表达式B
表达式成真条件: 满足表达式A和表达式B任意一个为真
短路原则: 如果表达式A为真,就不执行和判断表达式B,因为表达式A为真已经符合表达式A || 表达式B
为真的条件
代码示例
示例1:
#include <stdio.h>
int main()
{
int a=1,b=0;
if(a++||b++);
printf("a:%d;b:%d",a,b);
return 0;
}
if(a++||b++);
运算时,a=1,即if(1||b++);
表达式A已经为真,则触发短路原则,不执行表达式B
输出:
a:2;b:0
示例2:
#include <stdio.h>
int main()
{
int a=0,b=0;
if(a++||b++);
printf("a:%d;b:%d",a,b);
return 0;
}
if(a++||b++);
运算时,a=0,即if(0||b++);
表达式A为假,不触发短路原则,执行表达式B,判断执行b++
输出:
a:1;b:1
&&运算
表达式A && 表达式B
表达式成真条件: 满足表达式A和表达式B都为真
短路原则: 如果表达式A为假,就不执行和判断表达式B,因为表达式A为假已经不符合表达式A && 表达式B
为真的条件
代码样例
示例1:
#include <stdio.h>
int main()
{
int a=0,b=0;
if(a++&&b++);
printf("a:%d;b:%d",a,b);
return 0;
}
if(a++&&b++);
运算时,a=0,即if(0&&b++);
表达式A为假,触发短路原则,不执行表达式B
输出:
a:1;b:0
示例2:
#include <stdio.h>
int main()
{
int a=1,b=0;
if(a++&&b++);
printf("a:%d;b:%d",a,b);
return 0;
}
if(a++&&b++);
运算时,a=1,即if(1&&b++);
表达式A为真,不触发短路原则,执行表达式B,判断执行b++
输出:
a:2;b:1
总结
只要符合&&,||
表达式成立的条件,就触发短路原则,省时又省力
推荐阅读
-
数组·稀疏矩阵的三种表示方法
-
将数组用树有序表示及树的三种遍历
-
【C】用牛顿迭代法求下面方程在1.5附近的根:2*x^3-4*x^2+3*x-6=0
-
php生成固定长度纯数字编码的方法,php生成长度编码_PHP教程
-
php+jquery做onchange提交动作的有关问题,请人帮忙看看
-
MySQL查询Summary<无限级分类,递归检索或删除父类下的所_MySQL
-
C语言学习之用牛顿迭代法求下面方程在1.5附近的根: 2x³-4x²+3x-6=0
-
xdebug - 关于zend studio的php单步调试相关
-
在哪里可以找到做针对企业内训的讲html5和javascript的老师?
-
C语言编写程序计算某年某月某日是该年中的第几天(3种方法)