if语句中的条件执行过程(本人小白)C++

C++语言 码拜 8年前 (2016-05-22) 2507次浏览
例如:
int A=0;
int B=2;
int C=3;
int D=1;
if(A || B || C)
{
std::cout<<D;
}
进入if语句后,进程遇到A为0(假),则会立马结束if语句吗?也就是不管后面B,C和其他任何||符号?
这里ABC只是简单地常量,本人指的是if里面还带表达式的:如A、B、C都为表达式,执行到A为假、那么BC就不会被执行而直接跳出if吗
解决方案

17

这是逻辑或运算符,假如A为假,会继续判断条件B,若B为假,继续判断C。假如是&&运算符的话,若A为假,后面的条件就不判断了。

20

你说反了吧,是A为真才不会判断B和C

1

引用:
Quote: 引用:

你说反了吧,是A为真才不会判断B和C

本人想写的确实是&&运算中的执行问题。其实本人考虑的是程序优化,例如说,假如ABC本人能预测到C为0(假)的概率比AB大很多的话,本人想通过调整if条件的顺序提高执行效率,也就是写成:if(C&&A&&B)会比写成if(A&&B&&C)效率更优

是的

1

无profiler不要谈效率!尤其在这个云计算、虚拟机、模拟器、CUDA、多核 、多级cache、指令流水线、多种存储介质、……满天飞的时代!if语句中的条件执行过程(本人小白)C++

20

是的,具有短路特性,假如你是if(A&&B&&C)
假如A为假就不会判断后面的B和C

2

会的。短路,从前往后判断,假如前一个能得出整个表达式的结果,就不再往后判断了

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明if语句中的条件执行过程(本人小白)C++
喜欢 (0)
[1034331897@qq.com]
分享 (0)