gpt4 book ai didi

c++ - 至 "if, if, if"或至 "if, else if, else if, else"

转载 作者:IT老高 更新时间:2023-10-28 21:53:46 28 4
gpt4 key购买 nike

我正在编写一些用于数据分析的代码,并且必须根据某些标准排除样本。在实践中,我最终会编写如下代码:

bool Test(SampleType sample)
{
if( ! SubTest1(sample) )
return false;
if( ! SubTest2(sample) )
return false;
if( ! SubTest3(sample) )
return false;

return true;
}

以下似乎等同于我:

bool Test(SampleType sample)
{
if( ! SubTest1(sample) )
return false;
else if( ! SubTest2(sample) )
return false;
else if( ! SubTest3(sample) )
return false;
else
return true;
}

在计算成本方面有区别吗?在可扩展性/可维护性、美观等方面是否存在可争论的优先选择...?

我知道这可能是一个无关紧要的问题,但是一旦我把这些问题留在脑海中,我就需要找到答案。

PS:如果有人关心,我在 15/09 的实际代码可以在以下位置找到: http://folk.uio.no/henrikq/conf.tgz

最佳答案

编译器为两个版本生成相同的代码。但是如果只与第二版相比,第一版在可维护性方面更好。

遇到return语句时代码退出;所以在即将到来的 if 中保留 else 是没有用的。它使开发人员更好地理解代码。

另外,如果这是文字代码,那么您仍然可以缩小为,

bool Test(SampleType sample)
{
return (SubTest1(sample) && SubTest2(sample) && SubTest3(sample));
}

关于c++ - 至 "if, if, if"或至 "if, else if, else if, else",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7414890/

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