目录
java语言支持如下运算符:
算术运算符 | +,-,*,/,%,++,-- |
赋值运算符 | = |
关系运算符 | >,<,>=,<=,==,!=,instanceof |
逻辑运算符 | &&,||,! |
位运算符 | &,|,^,~,>>,<<,>>>(了解) |
条件运算符 | ?: |
扩展赋值运算符 | +=,-=,/=,*=, |
自增自减运算符
一元运算符 | ++ | 自增 |
-- | 自减 |
自增举例(自减同理)
int a=3;
int b=a++;//执行完这行代码后,先给b赋值,在自增
//a++ a=a+1
System.out.println(a);//4
//a=a+1;
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.0
逻辑运算符
与(and) | && |
或(or) | || |
非(取反) | ! |
boolean a=true;
boolean b=false;
System.out.println("a&&b:"+(a&&b));//a&&b:false 逻辑与运算 两个变量都为真,结果才为true
System.out.println("a||b:"+(a||b));//a||b:true 逻辑或运算 两个变量有一个为真,则结果为true
System.out.println("!(a&&b):"+!(a&&b));//!(a&&b):true 如果是真,则变为假;如果是假,则变为真
短路运算
与运算中,如果&&前面的为false,那么&&后面的代码不执行
int c=5;
boolean d=(c<4)&&(c++<10);
System.out.println(d);//false
System.out.println(c);//5
位运算符(效率极高)
& | ^ ~ 运算符的简单例子
a = 0011 1100
b = 0000 1101
------------------------
a&b 0000 1100
a|b 0011 1101
a^b 0011 0001
~b 1111 0010
2*8=16 计算机是2*2*2*...这样计算的
<< 相当于*2
>> 相当于/2
0000 0000 | 0 |
0000 0001 | 1 |
0000 0010 | 2 |
0000 0011 | 3 |
0000 0100 | 4 |
0000 1000 | 8 |
0001 0000 | 16 |
System.out.println(2<<3);//16
扩展赋值运算符
+= -=
int a=10;
int b=20;
a+=b;//a=a+b
a-=b;//a=a-b
System.out.println(a);//10
字符串连接符
+,有一边是String类型的,就会把其他操作数都转化为String类型,再进行连接
int a=10;
int b=20;
System.out.println(a+b);//30
System.out.println(""+a+b);//1020
System.out.println(a+b+"");//30
三元运算符
x:y?z
如果x==true,则结果为y,否则结果为z
int score=80;
String type=score<60?"不及格":"及格";
System.out.println(type );//及格