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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值