赞
踩
条件运算符格式
(条件表达式)?表达式1:表达式2
说明:条件表达式是boolean类型的记过,根据boolean的值选择表达式1或表达式2
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2sAlfvcF-1689483557616)(F:\BaiduNetdiskDownload\image-20220312002841945.png)]
/*
条件运算符
1.(条件表达式)?表达式1:表达式2
2.说明:
①条件表达式的结果是boolean类型
②如果条件表达式的结果是true,则执行表达式1。否则,执行表达式2.
③表达式1和表达式2为同种或兼容的类型
④开发中,凡是可以使用条件运算符的位置,都可以改写为if-else。
反之,能使用if-else结构,不一定能改写为条件运算符。
建议,在二者都能使用的情况下,推荐使用条件运算符。因为执行效率稍高
*/
class ConditionTest{
public static void main(String[] args){
String info = (2>1)?"表达式1":"表达式2";
System.out.println(info); //表达式1
String info = (2>10)?"表达式1":"表达式2";
System.out.println(info); //表达式2
double d1 = (2 > 1)?1:2.0;
System.out.println(d1); //1.0
}
}
练习1:获取两个整数的较大值
public class MaxTest{
public static void main(String[] args){
int m = 10;
int n = 20;
int max = m > n ? m,n;
System.out.println("较大的值为:"+max);
}
}
练习2:获取三个数的最大值
public class threeMax{
public static void main(String[] args){
int m = 10;
int n = 8;
int x = 12;
int tempMax = (m > n)? m : n;
int finMax = (tempMax >x)?tempMax:x;
System.out.println("最大的值为:"+finMAX);
//int finMax = ((m > n)? m : n ) > x ? (m > n)? m : n : x;
}
}
练习3:
/* 今天是周2,10天以后是周几? 要求:控制台输出"今天是周2,10天以后是周x"。 */ public class dayTest{ public static void main(String[] args){ int week = 7; int day = 2; int x = 10 % week; x += 2; System.out.println("今天是周2,10天以后是周"+x); } } //方式2 /* public class dayTest{ public static void main(String[] args){ int week = 2; week += 10; week %= 7; System.out.println("今天是周2,10天以后是周"+((week == 0)?"日":week)); } } */
运算符有不同的优先级,所谓优先级就是在表达式运算中的运算符顺序。
上一行中的运算符总是优先于下一行的。
优先级 | 运算符说明 | Java运算符 |
---|---|---|
1 | 括号 | () 、[] 、{} |
2 | 正负号 | + 、- |
3 | 单元运算符 | ++ 、-- 、~ 、! |
4 | 乘法、除法、求余 | * 、/ 、% |
5 | 加法、减法 | + 、- |
6 | 移位运算符 | << 、>> 、>>> |
7 | 关系运算符 | < 、<= 、>= 、> 、instanceof |
8 | 等价运算符 | == 、!= |
9 | 按位与 | & |
10 | 按位异或 | ^ |
11 | 按位或 | ` |
12 | 条件与 | && |
13 | 条件或 | ` |
14 | 三元运算符 | ? : |
15 | 赋值运算符 | = 、+= 、-= 、*= 、/= 、%= |
16 | 位赋值运算符 | &= 、` |
开发建议:
- 不要过多的依赖运算的优先级来控制表达式的执行顺序,这样可读性太差,尽量
使用()来控制
表达式的执行顺序。- 不要把一个表达式写得过于复杂,如果一个表达式过于复杂,则把它
分成几步
来完成。例如:
(num1 + num2) * 2 > num3 && num2 > num3 ? num3 : num1 + num2;
()来控制`表达式的执行顺序。
- 不要把一个表达式写得过于复杂,如果一个表达式过于复杂,则把它
分成几步
来完成。例如:
(num1 + num2) * 2 > num3 && num2 > num3 ? num3 : num1 + num2;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。