读大话设计模式,开头的毛病代码用if else实现了计算器,说计算机做了三次无用功,优化后是用switch,那么switch为什么比if else效率高呢,
百度找了几个说是底层算法不一样,找了一个比较通俗易懂的,说:if else是一条比较指令,需要一条条比较,而switch是一个张地址表,而只需访问对应索引号的表项就能定位分支,有以空间换时间的意思
自己的话总结,if else 相当于全表查询,速度慢,switch相当于加了索引,(索引快的原因是底层算法是平衡树(非二叉)类似于b b+树)