gpt4 book ai didi

c - 在 C 和 C++ 中使用 if、else if、else if、...和使用 switch () { case A : . .. case B : . .. } 之间有什么区别吗?

转载 作者:太空狗 更新时间:2023-10-29 17:15:45 24 4
gpt4 key购买 nike

我感兴趣的是,从 C 或 C++ 编译器的角度来看,我是否使用:

if (value == a) {
...
}
else if (value == b) {
...
}
else if (value == c) {
...
}

对比

switch (value) {
case a:
...
break;
case b:
...
break;
case c:
...
break;
}

我感觉没什么区别,只是语法上的区别。有谁知道更多吗?

谢谢,Boda Cydo。

最佳答案

是的,有区别。级联的 if 保证按顺序评估条件。 switch 保证仅对用作 switch 参数的任何内容进行一次评估。根据编译器的不同,无论选择的分支如何,切换通常都需要(几乎)恒定的时间,而 if 级联几乎可以保证第一条腿最快,第二条第二快,依此类推一直到最后一个最慢。

关于c - 在 C 和 C++ 中使用 if、else if、else if、...和使用 switch () { case A : . .. case B : . .. } 之间有什么区别吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3365341/

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