算术运算符:+,-,*,/,%,++,–
%: 取模/取余,余数为0即为整除
++/- -:自增1/自减1,可在变量前也可在变量后
-
单独使用时,在前在后都一样
``` a++; ++a; ```
-
被使用时,在前在后不一样
a++的值为a----(a–的值为a)
++a的值为a+1–(--a的值为a-1)int b = a++; //b的值为a int c = ++a; //c的值为a+1 System.out.print(a++);//打印a System.out.print(++a);//打印a+1
关系运算符:
- (>大于),<(小于),>=(大于或等于),<=(小于或等于)
==(等于),!=(不等于) - 关系运算的结果为boolean型,
关系成立则为true,关系不成立则为false
逻辑运算符:
逻辑运算是建立在关系运算的基础之上的,逻辑运算的结果也是boolean型
1. &&(逻辑与):
两边都为真则为真,见false则false短路与(并且),两边都为真则为真,见false则false, 短路
----若第1个数为false,则发生短路(后面的不执行了)
2. ||(逻辑或):
有一边为真则为真,见true则true ,短路或(或者),
----若第1个数为true,则发生短路(后面的不执行了)
3. !:(逻辑非)取反,非真则假,非假则真
4.短路:
&&和||都是由两部分组成的,当前面一半就可以判断真假时,后面一半不在执行,这就是短路.
例如:
int a=5,b=10,c=5;
boolean b4 = a<b || c++>2;//a<b为真,那么可以断定b4为真,后面不在执行
System.out.println(b4); //true
System.out.println(c); //5,发生短路了
int a=5,b=10,c=5;
boolean b4 = a>b || c++>2;//a>b为false,不能断定b4的值,还要继续
System.out.println(b4); //true
System.out.println(c); //6,
赋值运算符:
简单赋值运算符:=
扩展赋值运算符:+=,-=,*=,/=,%=(这几个自带强制转换数据类型功能)
注意:java中数字的运算都会自动当作int类型来做,byte/short/char参与运算时也会自动转成int来运算
例如:
double dou = 5/2;//dou的值位2.0,因为5/2是默认int型运算,结果位2,然后赋给dou变成2.0
dou=5/2.0;//这样dou的值就是2.5了
short s = 5;
s += 10; //相当于s = (short)(s+10);
s=5+10;//这样编译通过,因为整型直接量只要不超过范围就可以直接赋值给short/byte/char
s = s+10; //编译错误,需强转 s=(short)(s+10);因为short运算时先转成int,这里=后面相当于int变量,而不是int型直接量,所以会报错
字符串连接运算符(+):
- 若两边为数字,则做加法运算
- 若两边出现了字符串,则做字符串连接
例如:
System.out.println(10+20+""+30); //先算10+20=30,然后变成字符串"3030"
System.out.println(10+20+30+""); //"60"
System.out.println(""+10+20+30); //"102030"
条件/三目运算符:
类似于if-else
- 语法:
boolean?数1:数2
- 执行过程:
计算boolean的值:
若为true,则整个表达式的结果为数1
若为false,则整个表达式的结果为数2