引出
你有没有想过既然有了if elseif, 为什么还要设计一个switch case的语法出来呢?...甚至还要加一个时不时就忘记的break.
分析
虽然我们已然回不到当初设计高级语言的哪个年代, 但是要继承胡先生的思想: "大胆假设, 小心求证"....画个简陋的图来对执行过程进行说明, 生成的索引数组中保存着对应跳转的具体地址, 然后直接进行数据的随机访问就可以完成比较了.
image-20200704001927028
看到这里, switch case...别说, 我试了几种比较流行的语言, 发现Python就不支持, 哈哈, 用了这么久Python还是突然发现它不支持switch case, 由此可见, switch case我用的比较少....最后, 其实我就是好奇有了if else为什么还要设计个switch出来, 结果找着找着还真挺有意思的, switch的底层实现居然是数组的随机访问, 果然, 就不能想, 全是学问.