if……else 和 三目运算符 性能比较

2021-01-28 00:00:00 性能 运算符

很多时候三目运算符和if-else语句可以相互转换,它们两个可以等价的实现判断效果,但是三目运算符和if-else还是有不同之处的:

1、两者对返回值要求不同。三目运算符必须要有返回值,执行三目运算后,一定有一个返回值。而if-else不一定有返回值。   2、两者使用返回不同,再一些动态执行的情况下,只能使用三目运算符。大多数情况下两者是可以等价互换的。   3、两者性能不同,三目运算符性能略高。相同的代码,使用if-else执行的耗时是三目运算符的两倍以上。   4、两者语言特性不同,三目运算符设计到一直双目运算符提升的特性,所谓双目数值提升,在双目运算符java的开发环境可以简单的理解为类型转换。       1)如果定义了数据类型的变量和未定义数据类型的变量参与双目运算符的后双目运算,那么返回的结果就是范围大(精度高)的类型。     2)如果两个定义了数据类型的变量参与双目运算符的后双目运算,那么返回的结果就是范围大(精度高)的类型。     3)如果直接进行数值的比较,则自动转型为范围大(精度高)的类型   从类型上看:三目运算符在做判断时需要考虑类型转换的问题,而if-else不需要考虑类型转换,也相对鱼三目运算符较为简单灵活。if-else效率高一点。   从总体上看:考虑循环自身所占用的时间,考虑到赋值以及循环内的其他运算符所占用的时间,三目运算符效率高。

    原文作者:小李_同志
    原文地址: https://blog.csdn.net/lishuzhen5678/article/details/109719653
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。

相关文章