C++ 的 switch 语句并不是用来替代 if else 的,而是来自 C 语言
至于 C 语言为什么会有 switch ?因为它就是复刻的汇编语言的跳转表的结构。
为什么这么做呢?因为 C 语言当初设计是为了跨平台,是想为汇编语言不同的各种CPU,设计一种通用语言,把不同CPU对应的汇编语言所拥有的特性大部分实现,所以要努力复刻汇编语言中的跳转表特性,这个特性难以用 if-else 高效的表达。
(注:解释一下,C语言所谓的跨平台是CPU体系架构层面的跨平台,而Java的跨平台是操作系统层面的跨平台。)
所以题主明白了?C 语言的 switch 从来就不是 if-else 的语法糖,而是为了映射汇编语言跳转表功能的语言对应,它设计成这个样子就只是为了实现汇编语言中的某个功能,类似的功能必须用不带自动break的switch结构来实现。
至于 C++,它本身目前还根本没有「你想要的那种」switch,或者说它没有那种单纯作为 if-else 语法糖的 switch 。
在 C、C++ 中,只有当条件判断可以做成跳转表的情况下,才适合使用 switch,其它情况下应该使用 if-else,把 C 跟 C++ 的 switch 作为 if-else 语法糖,是一种滥用跟误用。
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有