之间有什么区别吗?
if (firstCheck())
return;
if (secondCheck())
return;
和
if (firstCheck() || secondCheck())
return;
我的问题集中在运行时!
答案 0 :(得分:5)
不,没有区别。优化编译器应该生成相同的二进制文件。
没有办法说一个比另一个好。如果这两个条件密切相关,我会用一个if
子句写它们,如果它们是独立的,我会用两个。
答案 1 :(得分:3)
假设常规病例,两者都相似。
对于棘手/恶意的情况,firstCheck()
/ secondCheck()
返回自定义类型,重载operator ||
,它们是不同的。
答案 2 :(得分:1)
不,这被称为"短路"。如果第一个参数是operator||
,则布尔值的内置false
将仅评估第二个参数。