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
java valueofps:此处,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
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论