zoukankan      html  css  js  c++  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 <code>Boolean</code> object corresponding to the primitive
    * value <code>true</code>.   (翻译:布尔对象对应于原始值true)
    */


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


    补充下条件表达式资料:

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

            口诀:前真后假

            性质:右结合性          

              若有多个条件表达式像这样连在一起:x=<表达式1>?<表达式2>:<表达式3>?<表达式4>:<表达式5>···执行顺序是从右到左依次判断再求出最后的x,即所谓的右结合性。
              例如: a=1,b=2,c=3,d=4,则条件表达式a<b?a:c<d?c:d的值为:1

       

  • 相关阅读:
    VS2019基于windows类库创建单元测试报错解决方法
    scp 跨机远程拷贝
    java递归查询部门
    使用jOrgChart插件生成树形图
    让你页面上所有的非http请求强制转成https请求
    js对金额格式化————脑子不好使总忘
    去除相邻的重复元素 122345556 -> 123456
    打包时无法引入外部jar
    计算list里连续出现的值
    VirtualBox安装Centos双网卡(访问外网+固定IP)
  • 原文地址:https://www.cnblogs.com/dgyw/p/5684378.html
Copyright © 2011-2022 走看看