第05部分:条件运算符

条件运算符 ?: 是有点晦涩的三元运算符(有三个操作数),从 C 语言继承而来,可以在一个表达式中嵌入条件判断。这个运算符可以看成是 if/else 语句的运算符版。条件运算符的第一个和第二个操作数使用问号(?)分开,第二个和第三个操作数使用冒号(:)分开。第一个操作数的计算结果必须是布尔值。第二个和第三个操作数可以是任意类型,但要能转换成同一类型。

条件运算符先计算第一个操作数,如果结果为 true,就计算第二个操作数,并把结果当成表达式的返回值;如果第一个操作数的计算结果为 false,条件运算符会计算并返回第三个操作数。条件运算符绝不会同时计算第二个和第三个操作数,所以使用有副作用的表达式时要小心。这个运算符的使用示例如下:

int max = (x > y) ? x : y;

String name = (name !=null) ? name : "unknown";


注意,?: 运算符的优先级只比赋值运算符高,比其他运算符都低,所以一般不用把操作数放在括号里。不过,很多程序员觉得,把第一个操作数放在括号里,条件表达式更易读。的确,毕竟 if 语句的条件表达式都放在括号里。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 位运算符和位移运算符是底层运算符,处理组成整数的单个位。其实在 Java 程序里很少使用位运算符,除非处理底层操作...
    郭艺宾阅读 3,294评论 0 0
  • 前面讲了比较运算符,比较计算结果为布尔值,经常用在分支和循环语句中。为了让分支和循环的条件判断更有趣,可以使用逻辑...
    郭艺宾阅读 3,150评论 0 0
  • 赋值运算符把值存储在某种变量中或赋予某种变量。左侧操作数必须是适当的局部变量、数组元素或对象字段。右侧操作数可以是...
    郭艺宾阅读 3,008评论 0 0
  • 表达式 相对于基本类型、字面量和变量,表达式是Java程序更高一级的结构。Java解释器会求出表达式的值,最简单的...
    郭艺宾阅读 3,610评论 0 0
  • ++运算符把它的单个操作数增加1,这个操作数必须是变量、数组中的元素或对象的字段。这个运算符的行为取决于它相对于操...
    郭艺宾阅读 3,754评论 0 0

友情链接更多精彩内容