switch 与 if-else
- 结论:一般情况下,switch的效率高于if-else语句
- 原理:
- if …else走逻辑判断时,每条if语句都独立需要加载,都要走一遍判断。
- switch…case 只做一次计算,然后将表达式的值与case逐个比较,直到匹配正确。
- 总结:
- switch 虽然效率高,但要求case为常量
- if-else 虽然效率低,但更加的灵活
if-else 与 三目表达式
- 结论:一般情况下if-else效率要低于三目表达式
- 原理+总结:
- 从类型转换上看,因为三目运算符在做判断的时候需要考虑到类型转换的问题,而if else 不需要考虑类型转换。
所以 if else 效率高一点。 - 从总体上看
A: 需要考虑到循环自身所占用的时间。
B: 需要考虑到赋值以及循环内的其他运算符所占用的时间。
所以 三目运算符效率高一点.
- 从类型转换上看,因为三目运算符在做判断的时候需要考虑到类型转换的问题,而if else 不需要考虑类型转换。
个人意见:对代码效率的追求没有之境,有时候看以只是对代码优化几毫秒,但如果这段代码被运行了十万百万次呢?