我认为在某种程度上,这可能是基于开关的典型用法的任意决定。
切换基本上可以通过两种方式(或原则上是组合)来实现:对于少数情况或值分散的情况,切换本质上等同于临时变量上一系列if的等效项(开启的值仅需评估一次)。对于数量或多或少连续的中等数量的情况,使用切换表(Java中的TABLESWITCH指令),从而在表中有效地查找要跳转到的位置。
这些方法中的任何一种原则上都可以使用长值而不是整数。但是我认为,平衡指令集和编译器的复杂性与实际需求可能只是一个实际的决定:真正需要长时间切换的情况很少见,因此可以将其重写为系列IF语句,或以其他方式工作(如果所讨论的长值彼此靠近,则可以在Java代码中切换减去最小值的int结果)。



