本文已参与「新人创作礼」活动,一起开启掘金创作之路。
运算符之三元运算符
前言:文章中放太多的图片csdn会当作链接,超过5个就要审核半天。。。故此尽量少放图片,看代码理解吧。
首先我们理解一元二元运算符的含义,
一元运算符:只需要一个数据就可以进行操作的运算符。例如:取反!、自增++、自减--
二元运算符:需要两个数据就可以进行操作的运算符。例如:加法+、赋值=
同理我们可以推出三元运算符:需要三个数据就可以进行操作的运算符。
格式:
数据类型 变量名称 = 条件判断 ? 表达式A : 表达式B;
流程:
首先判断条件是否成立;
如果成立为true,那么将表达式A的值赋值给左边的变量;
如果不成立为false,那么将表达式B的值赋值给左边的变量。
二者选其一。
注意事项: 1.必须同时保证表达式A和表达式B都符合左侧数据类型的要求,否则就类似强制转换出现数据溢出和精度损失的问题。
举例:
此处务必不要抱有侥幸心理,虽然因为3>4为false,得值应该是10,但编译器对于三元运算的要求就是两个表达式要和左侧的数据类型保持一致,因此直接就会报错。
2.三元运算符的结果必须被使用。 完整代码:
/* 一元运算符:只需要一个数据就可以进行操作的运算符。例如:取反!、自增++、自减-- 二元运算符:需要两个数据就可以进行操作的运算符。例如:加法+、赋值= 三元运算符:需要三个数据就可以进行操作的运算符。
格式: 数据类型 变量名称 = 条件判断 ? 表达式A : 表达式B; 流程: 首先判断条件是否成立; 如果成立为true,那么将表达式A的值赋值给左边的变量; 如果不成立为false,那么将表达式B的值赋值给左边的变量。 二者选其一。
注意事项: 1.必须同时保证表达式A和表达式B都符合左侧数据类型的要求,否则就类似强制转换出现数据溢出和精度损失的问题。 2.三元运算符的结果必须被使用。 */ public class Demo13Operator{undefined public static void main(String[] args){undefined int a = 10; int b = 20; // 数据类型 变量名称 = 条件判断 ? 表达式A : 表达式B int max = a > b ? a : b; // 取最大值的变量 System.out.println(max); // 20
// int result = 3 > 4 ? 2.5 : 10; // 错误写法
System.out.println(a > b ? a : b); // 正确写法,且此时不要求与左侧数据类型保持一致,因为左侧无新变量。
// a > b ? a : b;
}
}