Java语言支持如下运算符:
- 算术运算符:+,-,*,/,%,++,–
- 赋值运算符 =
- 关系运算符:> , < , >= , <= , == , != instanceof
- 逻辑运算符:&& 与,|| 或 ,! 非
- 位运算符:& , | ,^ ,~ ,>> , << , >>> ( 了 解 )
- 条件运算符:?:( 了 解 )
- 扩展赋值运算符:+= , -= ,*= ,/= ( 了 解 )
自增自减运算符
int a = 3;
int b = a++; //a++ a = a + 1
//执行完这行代码后,先给b赋值,再自增
System.out.println(a); //输出值为4
int c = ++a; // 执行完这行代码,先自增,再给c赋值
System.out.println(a); //输出值为5
System.out.println(b); //输出值为3
System.out.println(c); //输出值为5
Math类
//幂运算 2^3 2*2*2=8 很多运算,会使用一些工具类来操作
double pow = Math.pow(2,3);
System.out.println(pow); //输出:8
逻辑运算符
// 与(and) 或(or) 非(取反)
boolean a = true;
boolean b = false;
System.out.println("a && b:"+(a&&b)); //逻辑与运算:两个变量都为真,结果才为true
System.out.println("a || b:"+(a||b)); //逻辑或运算:两个变量有一个为真,则结果为true
System.out.println("!(a&&b):"+!(a&&b)); //如果是真则变为假,如果是假则变为真
//短路运算
int c = 5;
boolean d = (c<4)&&(c++<4); //c<4为false,c++<4不会执行
System.out.println(d);
System.out.println(c);
位运算符
/*
A = 0011 1100
B = 0000 1101
---------------------------------------
A&B = 0000 1100 //有零则零
A|B = 0011 1101 //同位都为零时才为零
A^B = 0011 0001 //相同取零,不同取1
~B = 1111 0010 //取反
2*8=16
<< 左移
>> 右移
0000 0000 0
0000 0001 1
0000 0010 2
0000 0011 3
0000 1000 8
0001 0000 16
位运算:效率高(二进制)
*/
System.out.println(2<<3); //输出结果:16
扩展赋值运算符
int a = 10;
int b = 20;
int c = 1;
a+=b; //a = a + b
a-=b; //a = a - b
System.out.println(a);
//字符串连接符 + 加号两侧出现string类型,转化为字符串输出
System.out.println(a+b);
System.out.println(""+a+b); //输出1020
System.out.println(a+b+""); //输出30
System.out.println(a+b+""+c);
条件(三元)运算符
// x ? y : z
//如果x==true,则结果为y,否则结果为z
int score = 80;
String type = score < 60 ? "不及格" : "及格"; // 必须掌握
//if也可实现,但三元运算符更加精简,便于理解
System.out.println(type);