gpt4 book ai didi

c# - 编写 if 语句是否会以不同方式影响程序的速度和效率?

转载 作者:行者123 更新时间:2023-11-30 18:13:48 28 4
gpt4 key购买 nike

我很好奇以不同方式编写 if 语句是否会影响程序的速度和效率。所以,例如写一个这样的:

bool isActive = true;

bool isResponding = false;

if (isActive && isResponding)
{
//do this
}

是否比以下更优化:

if (isActive)
{
if (isResponding)
{
// do this
}
}

反之亦然,还是完全没有区别?我问这个 if 语句的原因是因为 AND && 以及它在编译后创建的 asm 函数的数量。或者怎么样:

if (isActive || isResponding)
{
//do this
}

这是否比以下更优化:

if (isActive)
{
//do this #1
}
else if (isResponding)
{
//do this #1
}
//do this #2

就像 AND && 一样,我很好奇因为 OR ||

最佳答案

不,它不影响性能,因为 &&|| 是所谓的“短路运算符”,也就是说,它们链接的语句不会如果这样做没有意义,就会被解雇。

例如

if( true && myBoolFunc() ) - myBoolFunc 将触发,因为在检查 true 之后我们仍然不知道整个语句是否是是的。

if( false && myBoolFunc() ) - myBoolFunc 不会触发,因为在检查 false 之后我们已经知道,整个语句是错误的.

if( true || myBoolFunc() ) - myBoolFunc 不会触发,因为在检查 true 之后我们已经知道,整个语句是是的。

if( false || myBoolFunc() ) - myBoolFunc 将触发,因为在检查 false 后仍然不知道整个语句是否是错误。

如果您想了解有关其工作原理的更多详细信息,请阅读此 Wikipedia article

关于c# - 编写 if 语句是否会以不同方式影响程序的速度和效率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51917883/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com