运算符是一种特殊的符号 用以表示数据的运算 赋值和比较等
JAVA 层面的
- 算术运算符
- 赋值运算符
- 比较运算符
- 逻辑运算符
- 位运算符
- 三元运算符
注意 常见的运算符 要会使用 用多了就记住了 一个字 敲
三元运算符
格式:(条件表达式)?表达式1:表达式2;
条件表达式 为false 运算后的结果是 表达式2
条件表达式 为true运算后结果是 表达式1
结果必须是boolean类型
表达式1和表达式2 为同种类型
说明:
/*
运算符之六:三元运算符 三目运算
结构:(条件表达式)?表达式1:表达式2
说明:
表达式结果是boolean类型
根据表达式真或假 决定执行表达式,还是表达式2
如果是true 则执行表达式1
如果是false 则执行表达式2
*/
下面用代码进行演示:
求两个变量的最大值 使用三元运算符代码如下:
//获取两个整数的较大值
int m = 20;
int n = 35;
int max = (m>n)?m:n;
System.out.println(max);
命令行编译执行
i运算符的结果 nt max 的数据类型 由表达式1和表达式2 进行决定
三元运算符的嵌套
下面讲下嵌套的使用
对 m 和 n 的值 求最大值 如果结果两个变量的数值一样大怎么办?
这就需要嵌套了
先设想 如果m>n 表达式1 为“m大”,后面的表达式2 就不是写“n大”了 而是写在进行一个判断 (m==n) 然后在写表达式1 和表达式2 这是在 n大的基础内进行迭代 有两种情况一种是n大 另一种就是 两个变量相等 一边大
代码如下:
int m = 50;
int n = 50;
String maxStr2 = (m>n)?"m大":((m==2))?"相等":"n大";
System.out.println("结果是"+maxStr2);
运行结果是:
下面进行三个变量进行求最大值:
int n1 = 12;
int n2 = 50;
int n3 = -45;
int max1 = (n1>n2)?n1:n2;//先求出2 个值中的最大值
int max2 = (max1>n3)?max1:n3;//用刚才其中两个值的最大值 和第三个值进行比较得出 最大值
System.out.println("三个数的最大值是:"+max2);
运行结果是:
三元运算符的嵌套:
int n1 = 12;
int n2 = 50;
int n3 = -45;
//思路 如果n1 大于n2 用n1 和n3进行比较
int maxInt = (((n1>n2)?n1:n2)>n3)?((n1>n2)?n1:n2):n3;
System.out.println("最大值:"+maxInt);
注意
这样嵌套写着很麻烦 也很容易进行出错 不建议这么写嵌套 自己都看着看着就蒙圈了
凡是可以使用三元运算符的程序 都可以使用 if…else 结构
反之 不成立 原因 三元运算符是简单的运算符 表达式单一
if…else 结构 可以很复杂 是一个流程控制语句
int n1 = 12;
int n2 = 50;
int n3 = -45;
if (m>n)
{
System.out.println("m大");
}else{
System.out.println("n大");
}
结论:
如果程序既可以使用三元运算符,又可以使用 if…else 结构 那么优先使用三元运算符 原因:简洁 执行效率高