Java 条件运算符与运算符优先级

您所在的位置:网站首页 java条件运算 Java 条件运算符与运算符优先级

Java 条件运算符与运算符优先级

2023-03-24 00:51| 来源: 网络整理| 查看: 265

条件运算符

条件运算符格式:

(条件表达式)? 表达式1:表达式2

说明:条件表达式是boolean类型的结果,根据boolean的值选择表达式1或表达式

如果运算后的结果赋给新的变量,要求表达式1和表达式2为同种或兼容的类型

int i = (1 == 2 ? 100 : 200); System.out.println(i);//200 boolean mariied = false; System.out.println((mariied ? "已婚" : "未婚")); //未婚 double d1 = (1 > 2) ? 1 : 2.01; System.out.println(d1);//2.01 ; int num = 21; System.out.println(num > 0 ? true : num + " 不是正数");// true

 练习1、获取两个数中的较大值

//获取两个数的最大值 int m1 = 10; int m2 = 11; int m3 = 15; int max = m1 > m2 ? m1 : m2; System.out.println(m1 + " 和 " + m2 + " 中的最大值是 " + max); //求三个数中的最小是 int tempMin = m1 < m2 ? m1 : m2; int min = tempMin < m3 ? tempMin : m3; System.out.println("三个数中最小值是 " + min); //今天是周四,8 天后是周几? int week = 4; week += 8; week %= 7; System.out.println("今天周二,8天后是 " + ((week == 0) ? "日" : week));

与if-else的转换关系

凡是可以使用条件运算符的地方,都可以改写为if-else结构。反之,不成立。

开发中,如果既可以使用条件运算符,又可以使用if-else,推荐使用条件运算符。因为执行效率稍高。

//if-else实现获取两个数的较大值 int i1 = 10; int i2 = 20; int max;//声明变量max,用于记录i1和i2的较大值 if(i1 > i2){ max = i1; }else{ max = i2; }  

运算符有不同的优先级,所谓优先级就是在表达式运算中的运算符顺序。上一行中的运算符总是优先于下一行的。 

优先级

运算符说明

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;


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3