运算符分为算术运算符、关系运算符、逻辑运算符、赋值运算符、字符串连接符、条件运算符六大种
算术运算符 +、-、*、/、%、++、--
关系运算符 > >= < <= == !=
逻辑运算符 && || !
赋值运算符 = += -= *= /= %=
字符串连接符 +
条件运算符 boolean?num1:num2
算术运算符
算术运算符具体操作分为加、减、乘、除、取余数、自增、自减,其中加减乘除取余数计算规格与我们所学没有什么区别,需要解释下自增自减的操作
当自增自减单独使用时,自增自减符号在变量前后没什么影响
int a=5;
a++; //等于a=a+1
++a; //等于a=a+1
当自增自减与其他算术运算符结合使用时,存在自增自减先后顺序的问题
int a=5,b=8;
int c=++a+b--;
c=?
c到底等于多少呢?
这就要看自增自减符号在变量前还是变量后;若自增自减符号在变量前时,则先对变量进行自增自减运算,使用变量的改变后的值参与运算;若自增自减符号在变量后时,则先使用变量原有值参与运算,运算完成后,再对变量进行自增自减运算。
所以 c=(5+1)+8=14
a=5+1=6 b=8-1=7
关系运算符
关系运算符>、>=、<、<=、==、!=、
需要注意的是关系运算符运算的结果为boolean类,即true或者false
关系成立则为真,关系不成立则为假
需要注意 >=、<= 两个符号的意思为 大于或者等于、小于或者等于,只要满足一个条件就成立
即 boolean b1=5>=5 ; b1=true
逻辑运算符
逻辑运算符 && || !
逻辑运算符的运算结果是建立在关系运算符运算基础上的,所以逻辑运算符的运算结果也是boolean类型
逻辑与&& 又称短路与 意为并且 两边都为真则为真,见false则false
第一个条件为false时,则发生短路,后面的就不执行了
int a=5,b=10,c=5;
boolean b1=b>a&&a==c;
b1=true;
boolean b2=b<a&&++a>c;//b<a为false,发生短路,++a>c,不执行
b2=false;
System.out.println(a)
a=5
逻辑或 || 短路或 意为或者 有真则为真,见true则true
第一条件为true,则发生短路,后面不执行了
用法和&&相同
逻辑非 ! 意为取反 非真则假 非假则真
赋值运算符
赋值运算符分为基本赋值运算符和扩展赋值运算符
基本赋值运算符 =
扩展赋值运算符+=、-=、*=、/=、%=、
注意:扩展赋值运算符自带强制转换功能
扩展赋值运算符作用对象为变量 因为有重新复制功能,常量不能重新赋值
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
short s1=5;
s1=5+5;//编译错误,需要强制转换
s1+=5;--------s1=(short)(s1+5)
字符串连接符
字符串连接符 +
用法 两边为数字 则做加法运算
两边为字符串时 则作字符串连接
字符串连接符有同化作用
任何类型的数据与字符串连接,结果会转为字符串
System.out.printli(10+20+30+"")//60---字符串
System.out.printli(10+20+""+30)//3030---字符串
System.out.printli(10+""+20+30)//102030---字符串
条件运算符
语法boolean?num1:num2
根据boolean的值,判断表达式的值为num1还是num2
根据条件二选一