java运算符01算术逻辑,位运算符java扩展运算符实例讲解,运算符(operator)
n Java 语言支持如下运算符:
q 算术运算符: +,-,*,/,%,++,–
q 赋值运算符 =
q 关系运算符: >,<,>=,<=,==,!= instanceof
q 逻辑运算符: &&,||,!
q 位运算符: &,|,^,~ , >>,<<,>>> (了解!!!)
q 条件运算符 ?:
q 扩展赋值运算符:+=,-=,*=,/=
java二元运算符:
整数运算:
如果两个操作数有一个为Long, 则结果也为long
没有long时,结果为int。即使操作数全为shot,byte,结果也是int.
浮点运算:
如果两个操作数有一个为double, 则结果为double.
只有两个操作数都是float, 则结果才为float.
java取模运算:
其操作数可以为浮点数,一般使用整数。如:5.9%3.9=2.000000004
要点:
负数%负数=负数;
负数%正数=负数;
正数%负数=正数;
负数%正数=负数;
正数%负数=正数;
注:一般都是正整数运算,不用考虑这么细!
java一元运算符(++, –):
int a = 3;
int b = a++; //执行完后,b=3。先给b赋值,再自增。
int c= ++a; //执行完后,c=5。先自增,再给b赋值
注意:java中的乘幂处理:
int a = 3^2; //java中不能这么处理, ^是异或符号。
double b = Math.pow(3,2);
Math类提供了很多科学和工程计算需要的方法和常数。
布尔逻辑表达符:
逻辑与:&&和&,逻辑或:||和|,逻辑非:!。
逻辑与和逻辑或采用短路的方式。从左到右计算,如果确定值则不会再计算下去。
逻辑与只要有一个为false, 则直接返回false.
逻辑或只要有一个为true, 则直接返回true;
boolean c = 1>2&&2>(3/0);
&&不会抛异常;说明没有执行3/0;
位运算符:(了解)
~– 取反 & – 按位与
| – 按位或 ^ – 按位异或
<<:左移运算符,>>:右移运算符 >>>:无符号移位运算符
右移一位相当于除2取商。
左移一位相当于乘2。
int a = 3*2*2;
int b =3<<2; //相当于:3*2*2;
int a = 12/2/2;
int b = 12>>2;
扩展运算符
运算符
|
用法举例
|
等效的表达式
|
+=
|
a += b
|
a = a+b
|
-=
|
a -= b
|
a = a-b
|
*=
|
a *= b
|
a = a*b
|
/=
|
a /= b
|
a = a/b
|
%=
|
a %= b
|
a = a%b
|
字符串连接符:
³ “+”运算符两侧的操作数中只要有一个是字符串(String)类型,系统会自动将另一个操作数转换为字符串然后再进行连接。
int c = 12;
System.out.println(“c=”+ c);
三目条件运算符
l 三目条件运算符,语法格式:
x ? y : z 经常用来代替简单的if-else判断!
l 其中 x 为 boolean 类型表达式,先计算 x 的值,若为true,则整个三目运算的结果为表达式 y 的值,否则整个运算结果为表达式 z 的值。
l 举例:
intscore = 80; int x = -100;
Stringtype = score< 60 ? “不及格” : “及格“;
int flag = x > 0 ? 1 : (x == 0 ? 0 :-1);
System.out.println(“type=” + type);
System.out.println(“flag=”+ flag);
java运算符优先级的问题
R to L |
. ( ) { } ; ,
++ – ~ ! (data type) |
L to R
|
* / %
|
L to R
|
+ -
|
L to R
|
<< >> >>>
|
L to R
|
< > <= >= instanceof
|
L to R
|
== !=
|
L to R
|
&
|
L to R
|
^
|
L to R
|
|
|
L to R
|
&&
|
L to R
|
||
|
R to L
|
? :
|
R to L
|
= *= /= %=
+= -= <<= >>= >>>= &= ^= |= |
大家不需要去刻意的记住他,表达式里面优先使用小括号来组织!!课堂代码
|