switch语句关心大小写顺序吗?



我有一个Arduino Pro Micro,在循环期间将读取4个引脚的状态,然后使用这些引脚来评估开关语句,即

int bob = DigitalRead(1)+(DigitalRead(2)*2)+(DigitalRead(3)*4)+(DigitalRead(4)*8)
switch (bob) {
case 1:
case 2:
.
.
.
case 15:
}

我的问题是我必须按数字顺序去吗?switch语句是否真的关心这个,或者我是否会因为不按顺序执行而失去性能?我是否最好将它们分组,以便代码可以通过或使用goto case#?有几种情况下,我想要执行一些通用代码,所以我想我可以将这些情况组合在一起,并且在最后一个case语句中只在其末尾使用换行符的代码。

所以我可以把情况4和5归在一起也可以把8和10归在一起或者9和11归在一起。

这是可能的吗?还是它会看到10在9之前,然后停止寻找9?

我的问题是我必须按数字顺序去吗?

switch语句是否真的关心…

…我是否会因为不按顺序走而失去性能?

: -)

我是否最好将它们分组,以便代码可以通过或使用goto case#?

取决于你需要什么

请记住,如果您不希望它们一起运行,则需要在case之间使用break语句。

我想说,实际上今天所有的编译器都足够聪明,可以优化switch语句。首先,使您的代码具有可读性和可维护性。之后,如果出现性能瓶颈,并且开关是其中的一部分,那么看看您可能有什么其他选择。

最新更新