条件运算符
基本语法
-
条件运算符格式
(条件表达式)?表达式1:表达式2 -
说明:条件表达式是boolean类型的记过,根据boolean的值选择表达式1或表达式2
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2sAlfvcF-1689483557616)(F:\BaiduNetdiskDownload\image-20220312002841945.png)]
- 如果运算后的结果赋给新的变量,要求表达式1和表达式2为同种或兼容的类型
/*
条件运算符
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;
文章介绍了Java中的条件运算符,包括基本语法和使用规则,强调了表达式1和表达式2需为同种或兼容类型。通过示例代码展示了如何获取两个或三个数的最大值,并提到了运算符的优先级,建议在保证可读性的前提下,适当利用条件运算符提高效率。同时提醒避免过度依赖运算优先级,应使用括号明确表达式顺序。
6508

被折叠的 条评论
为什么被折叠?



