2.5 运算符和表达式
JAVA语言运算符包括
赋值运算符,算数运算符,关系运算符,逻辑运算符,位运算符等
表达式主要有:
赋值表达式,算术表达式,关系表达式,逻辑表达式
2.5.1赋值运算
变量=表达式
赋值运算符是一个双目运算符,连接两个运算量
逻辑运算
运算符&& || 是双目运算符
优先级高低:!>&&>||
2.5.4位运算符
1,左移运算符<<
每左移一位相当于该数乘以2
2,右移运算符>>
每右移一位相当于该数除以2
3,无符号运算符>>>
..............................................................................//以上是本人做下的笔记 并不详细 但是自己不太懂的部分
java运算符分为
- 算术运算符
- 关系运算符
- 位运算符
- 逻辑运算符
- 赋值运算符
- 其他运算符
条件运算符(?:)
条件运算符也被称为三元运算符。该运算符有3个操作数,并且需要判断布尔表达式的值。该运算符的主要是决定哪个值应该赋值给变量。
variable x = (expression) ? value if true : value if false
&是位
&&是逻辑
如:
3&6 就是执行的位运算,结果是一个整数:2
true&false 执行的就是逻辑运算,结果是一个boolean值:false
&的逻辑运算和&&逻辑运算是存在一定不同的
&逻辑运算时两边都会计算的,而&&则在左边为假时则直接返的是false不再计算右边
举个例子:
1:
int[] a={1,2,3};
if(a[0]==2&a[3]==4){System.out.println("true")}
2:
int[] a={1,2,3};
if(a[0]==2&&a[3]==4){System.out.println("true")}
这两个例子中,第一个会抛出异常,而第二个则什么不会输出也不会抛异常
这是因为第一个例子中if语句中用的是&,所以两边的都会计算,当计算a[3]==4时抛出数组下标越界异常
第二个例子则在计算第一个式子a[0]==2发现结果为假则不再计算右边,直接返回false,所以该例子不会输出任何东西 。
3:java中用的最多的一个三目运算符:A==3?b:c;
如果A=3成立的话结果是b,如果不成立的话结果是c;