java中三元运算符_java中三元运算符详解

三元运算符:

顾名思义,三元运算符需要三个操作数。

语法为:条件表达式?表达式1:表达式2。

说明:问号前面的位置是判断的条件,判断结果为bool型,为true时调用表达式1,为false时调用表达式2。

其逻辑为:“如果为真执行第一个,否则执行第二个。”

比如,java中基本类型 boolean的包装类 Boolean中“.valueOf(boolean b)”方法的源码定义:

public static Boolean volueOf (boolean b){

ruturn b ? Boolean.True:Boolean.False;

}

解析:方法体中的表达式用到了三元运算符,对应于上面的说明,其中:

条件表达式:b

表达式1: Boolean.True

表达式2: Boolean.False

方法体中表达式整体意思:返回变量b的引用(这个引用指向一个Boolean类型的instance),这个引用的获取需要经过三元运算符进行逻辑判断,判断过程如下:

当b的值为true时,返回Boolean.True

当b的值为false时,返回Boolean.False

ps:此处,True是Boolean类中的一个属性,但是这个属性本身的类型是类类型,且看其源码——

public static final Boolean TRUE = new Boolean(true);

对应源码中注释:

/**

* The Boolean object corresponding to the primitive

* value true.   (翻译:布尔对象对应于原始值true)

*/

总结:三元运算符中的置于"?"前方的条件表达式(java中常称作关系表达式)准确的说是布尔表达式,形式多种多样,只要计算的结果是一个布尔量即可

补充下条件表达式资料:

条件表达式:条件表达式由条件运算符构成,并常用条件表达式构成一个赋值语句。条件运算符优先级高于赋值、逗号运算符,低于其他运算符。

口诀:前真后假

性质:右结合性

若有多个条件表达式像这样连在一起:x=?:?:···执行顺序是从右到左依次判断再求出最后的x,即所谓的右结合性。

例如: a=1,b=2,c=3,d=4,则条件表达式a

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值