【发布时间】:2017-05-08 05:44:59
【问题描述】:
我总是想知道一些事情,但在其他地方找不到答案。如果我有这段代码:
if ((cond1) &&(cond2) && (cond 3) && (cond 4))
{
// do something
}
假设第一个条件为假,那么我的程序也会验证其他条件,还是跳过验证它们?
如果我有
if ((cond1) ||(cond2) || (cond 3) || (cond 4))
{
// do something
}
如果 cond 1 为真,我的程序会立即执行 if 部分还是继续验证其他条件?
【问题讨论】:
-
谷歌“短路评估”
-
您的 C 书籍或任何在线资源对
||和&&运算符有什么看法?有什么不清楚的地方? -
是的,如果您有
false && ...或true || ...,则将跳过其余条件。它叫short circuiting -
在调试器中运行时,经验测试向您展示了什么?
标签: c optimization logical-operators evaluation logical-and