【发布时间】:2015-08-11 07:56:09
【问题描述】:
我正在阅读关于 C 编程的 this 教程。它说:
switch 语句实际上是完全不同的(与其他语言),实际上是一个“跳表”。您只能放置导致整数的表达式,而不是随机布尔表达式,这些整数用于计算从开关顶部到与该值匹配的部分的跳转。下面是一些代码,我们将分解这些代码来理解“跳转表”的概念。
但是,switch语句的case需要比较,直到找到匹配(否则返回默认值)
那么它与多个 if-else 语句有什么不同呢?或者,它只是一个语法糖?我在这里遗漏了什么重要的东西吗?
【问题讨论】:
-
您链接到的文章准确解释了如何优化 switch 语句以使用跳转表,而不是一系列比较。你读了吗?
-
其实Java就是这样实现的,我怀疑还有其他基于C的语言。
-
引用的 Ruby 与众不同。
标签: java c++ c if-statement switch-statement