美文网首页Java学习笔记
Java三元运算符——类型必须一致

Java三元运算符——类型必须一致

作者: Viking_Den | 来源:发表于2016-09-21 22:49 被阅读428次

一、分析

当你使用三元运算符,两边的操作数的类型不一致的时候,这就涉及到三元操作符的转换规则:

  • 若果两个操作数不可转换,则不做转换,返回值为Object类型。
  • 若两个操作数是明确类型的表达式(比如变量),则按照正常的二进制数字来转换。int类型转换为long类型,long类型转换成float类型。
  • 若两个操作数中有一个是数字S,另外一个是表达式,且其类型为T,那么,若数字S在T的范围内,则转换为T类型;若S超过了T的范围,则T转换为S类型。
  • 若两个操作数字都是直接数字。则返回值类型为范围较大者。

二、场景

Example.png

分析,两个三元操运算,条件都为真,返回第一个值,结果“两者是否相等:true”。结果果真如此吗?结果“两者是否相等:false”!

问题出在于100和100.0这两个数字上:
在变量s中,第一个操作数(90)和第二个操作数(100)都是int类型,类型相同,返回的是int型的90;
在变量s1中,第一个操作数类型为(90)int类型,第二个操作数是(100.0)浮点型。
可是三元操作符必须返回同一个数据,而且类型要确定,不可能条件为真返回int类型,条件为假返回float类型,编译器是不会允许的,所以进行类型转换了。int转换成90.0,也就是所返回值是90.0当然和90不相等了。

三、建议

保证三元操作符中的两个操作类型一致,即可减少错误的发生。

相关文章

  • Java三元运算符——类型必须一致

    一、分析 当你使用三元运算符,两边的操作数的类型不一致的时候,这就涉及到三元操作符的转换规则: 若果两个操作数不可...

  • 三元运算符

    三元运算符会有自动类型提升

  • Java基础随记1

    Java基础随记 赋值运算符 比较运算符 逻辑运算符 条件运算符 条件运算符( ? : )也称为 “三元运算符”。...

  • Java基础知识

    1. 运算符 1.1 三目运算符 Java支持三元运算符 ?: condition?expression1:exp...

  • 计算机基础之运算符(20190131)

    java之运算符(20190131) 1. 算数运算符 2. 逻辑运算符 3. 位运算符 4. 三元运算符

  • 2019-07-23

    php支持以下类型的运算符。算术运算符,比较运算符,逻辑(或关系)运算符,赋值运算符有条件(或三元)运算符.

  • java三元运算符 / Long型集合排序

    java三元运算符 Long型集合排序Java 多字段排序Comparator(兼容Date,Integer,Do...

  • java中的运算符

    内容 算数运算符 赋值运算符 比较运算符 逻辑运算符 位运算符 位移运算符 三元运算符java中的运算符,有以下几...

  • java三元表达式转换规则

    代码如下 输出 解析 总结三元表达式的规则:冒号前后表达式或变量的数据类型必须一致。 引用 三元表达式转换规则

  • java运算符(一元运算符,二元运算符,三元运算符)

    JAVA元运算符存在一元运算符,二元运算符,三元运算符 一元运算符: i++、i--、++i、--i public...

网友评论

    本文标题:Java三元运算符——类型必须一致

    本文链接:https://www.haomeiwen.com/subject/yaaaettx.html