Java 语言支持如下运算符:
1.算术运算符: +,-,*,/,%,++,--
2.赋值运算符 =
3.关系运算符: >,=,>,>> (了解!!!)
4.条件运算符 ?: 扩展赋值运算符:+=,-=,=,/=
1.赋值运算符
= 赋值号, 将赋值号右边的数据,赋值给左边的变量(空间)。
注意类型必须要一致或兼容。
2. 算数运算符
+,-,*,/,% 和数学中的规则一样
注意:如果只有整数参数与运算,结果也为整数
3. 一元运算符
++(自增),--(自减),了解一个,另一个含义相同
++ 基本含义:在整型变量原来值的基础上增加 1,然后赋值给当前变量
++i(前导自增): 先将变量的值增加 1 , 赋值给自己,再进行其他运算
i++ (后导自增):先取出变量的值使用,然后再将变量的值增加 1, 赋值给自己
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类提供了很多科学和工程计算需要的方法和常数。
4. 逻辑运算符
&& 和 || 采用短路的方式。从左到右计算,如果确定值则不会再计算下去。
逻辑与只要有一个为false, 则直接返回false.
int a = 3; int b = a++; //执行完后,b=3。先给b赋值,再自增。
int c = ++a; //执行完后,c=5。先自增,再给b赋值
int a = 3^2; //java中不能这么处理, ^是异或符号。
double b = Math.pow(3, 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
逻辑或只要有一个为true, 则直接返回true;
boolean c = 1>2&&2>(3/0);
逻辑运算符的运算数必须是布尔值或布尔表达式,最终的结果也是布尔值
5. 位运算符(了解)
~ : 按位取反
& : 按位与
| : 按位或
^ : 按位异或
> :右移运算符
>>> :无符号移位运算符
右移一位相当于除2取商。
左移一位相当于乘2。
int a = 322;
int b = 3<<2; //相当于:322;
int a = 12/2/2;
int b = 12>>2;
6. 扩展运算符
7. 字符串连接符
“+” 运算符两侧的操作数中只要有一个是字符串(String)类型,系统会自动将另一 个操作数转 换为字符串然后再进行连接。
int c = 12;
System.out.println("c=" + c);
8. 条件运算符
条件运算符和数学中的含义一致,最终结果一定是布尔值 > , < , >= , <= 一般用于数值型数据 的运算, == , != 可对任意数据进行运算。注意比较两个数据是否相 等需要使用 ==
9. 三目条件运算符
三目条件运算符,语法格式
x ? y : z
其中 x 为 boolean 类型表达式,先计算 x 的值,若为true,则整个三目运算的结果为表达式 y 的值,否 则整个运算结果为表达式 z 的值。
int score = 80; int x = -100;
String type = score < 60 ? "不及格" : "及格";
int flag = x > 0 ? 1 : (x == 0 ? 0 : -1);
System.out.println("type= " + type);
System.out.println("flag= "+ flag);
10. 运算符优先级的问题
大家不需要去刻意的记住他,表达式里面优先使用 小括号来组织!!