Java代码中?和:符号的作用、名称及示例代码运行逻辑咨询
Java三元条件运算符用法解答
你提到的?和:组合的官方名称是三元条件运算符,它是Java语言中唯一的三元运算符(需要三个操作数参与运算),常用来简化简单的二选一赋值逻辑。
语法规则
通用语法结构为:条件判断表达式 ? 条件成立时返回的表达式 : 条件不成立时返回的表达式
执行逻辑:
- 首先计算
条件判断表达式的结果,结果为布尔类型true或false - 结果为
true时,整个运算符返回冒号前的表达式的值 - 结果为
false时,整个运算符返回冒号后的表达式的值
示例代码解析
你给出的代码:Integer b1 = b.length > 0 ? b[0] : 0;
这段代码的前提是b为int或Integer类型的数组,作用是对数组的首个元素做安全取值:
- 先判断数组
b的长度是否大于0(即数组是否包含元素) - 如果数组非空,就将数组的第一个元素
b[0]赋值给变量b1 - 如果数组为空,就将默认值
0赋值给变量b1
它完全等价于如下的if-else写法:
Integer b1; if (b.length > 0) { b1 = b[0]; } else { b1 = 0; }
注:三元条件运算符仅适合逻辑简单的二选一赋值场景,不建议嵌套使用避免降低代码可读性。
内容的提问来源于stack exchange,提问作者Shervin Rad
相关产品推荐
相关产品推荐

