gpt4 book ai didi

c++ - 如果条件不相关,相对于if-else语句,我是否应该选择两个if语句?

转载 作者:行者123 更新时间:2023-12-01 14:36:41 27 4
gpt4 key购买 nike

因此,我知道一般而言,我应该更喜欢else-ifif if。但是,如果这两个条件不相关怎么办?例如,这些将被视为“相关”条件:

if (line[a] == '{'){
openCurly = true;
}
else if (line[a] == '}'){
closeCurly = false;
}
注意if语句中的两个条件是如何关联的,使得当一个是 true时,另一个必须是 false。这是因为 line[a]可以是 {},但不能两者都是。
这是另一个示例:
if (line[a] == '{')
{
openCurly = true;
}
else if ((line[a] == ';' && !openCurly) || (line[a] == '}' && openCurly))
{
DoSomething(line);
line = "";
}
如果第一个条件为true,则第二个条件永远不会评估为true,因此使用 else-if是有意义的。但是,这两个条件看起来差别很大。
所以,我应该喜欢这样的事情吗?
if (line[a] == '{')
{
openCurly = true;
}

if ((line[a] == ';' && !openCurly) || (line[a] == '}' && openCurly))
{
DoSomething(line);
line = "";
}

最佳答案

您应该使用else-if语句。这是因为if-else构造仅在第二条语句的计算结果不为true时才检查第二条语句。
在您提供的示例中,

if (line[a] == '{')
{
openCurly = true;
}
else if ((line[a] == ';' && !openCurly) || (line[a] == '}' && openCurly))
{
DoSomething(line);
line = "";
}
即使第一个条件为true,用 else if语句替换 if语句也会导致检查第二个条件,这完全没有意义,而且还会浪费您一些时间。
将来,根据条件是否互斥来决定使用 else-if语句。

关于c++ - 如果条件不相关,相对于if-else语句,我是否应该选择两个if语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62703500/

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