引出
你有没有想过既然有了if elseif, 为什么还要设计一个switch case的语法出来呢?...甚至还要加一个时不时就忘记的break.
分析
虽然我们已然回不到当初设计高级语言的哪个年代, 但是要继承胡先生的思想: "大胆假设, 小心求证"....如果只能做数字的相等判断, 那么是不是可以将其想象成一个类似数组的结构, 可以直接以下标的形式进行索引, 而不是像if else要一个一个的进行判断呢? 没错, 事实上还真的是这样....但是为了随机访问, 这里生成了一个中间数组来保存地址, 空间换时间.
总结
那么, 设想一下, 在最开始的语言设计时, 为什么要有switch case这种空间换时间的做法呢?...最后, 其实我就是好奇有了if else为什么还要设计个switch出来, 结果找着找着还真挺有意思的, switch的底层实现居然是数组的随机访问, 果然, 就不能想, 全是学问.