提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
Java 运算符
Java 运算符分类
1. 算数运算符
单目:~(按位取反)、! (取非)、-(负号运算符)、 ++(自增)、 - -(自减)
java的自增运算符(++)和自减运算符(- -)继承于c++,可以使变量的值加1或减1,但其写在变量前后有不同的效果
如果写在变量前表示在使用这个变量之前加1或减1
如果写在变量后表示在使用这个变量只够加1或减1
int a=10,b=20;
int c=a++;//先将a的值赋值给c,然后再自加
int d=++b;//先将b的值自加,然后再赋值
System.out.println(c + d + a +b);//10 21 11 21
双目:+ - * / %(取余)(取模运算(%)意为取余数,适用于整数,char类型以及浮点数)
三目:a>b?true:false 说明:当a大于b的时候,为true(也就是冒号之前的值),否则为false;这整个运算符包括一个关系运算符(可以是“>”"<""!="等等),一个“?”,一个“:”,冒号前后需要有两个表达式或者是值或者是对象。
2. 关系运算符
等于符号:==,不等于符号:!= ,大于符号:>, 小于符号:<,大于等于符号:>= ,小于等于符号:<= 。
关系运算的结果为boolean类型,如果关系成立则为ture,否则为false
3. 位运算符
&:双目运算符,运算时均把运算数转换为二进制再做比较,规则:当相同的位上均为1时结果为1,否则结 果为0.如:1010&1101,转为二进制:1111110010&10001001101,比较结果为:1000000转为十进制: 64。所以1010&1101=64;
| :当两边操作数的位有一边为1时,结果为1,否则为0。如1100|1010=1110
~:0变1,1变0
^ :两边的位不同时,结果为1,否则为0.如1100^1010=0110
4. 逻辑运算符
逻辑运算建立在关系运算的基础上
参与逻辑运算的变量或者表达式都是boolean类型,运算结果也为boolean类型
与(&&)、非(!)、或(||)
b1 | b2 | b1&&b2 | b1||b2 | !b1 |
---|---|---|---|---|
false | false | false | false | true |
false | true | false | true | true |
true | false | false | true | false |
true | true | true | true | false |
两个值为boolean类型的变量进行&&运算,只有当两个变量值都为true时值才为true。
两个值为boolean类型的变量进行||运算,只有当两个变量值都为false时值才为false。
关于逻辑短路问题
Java逻辑运算符遵循短路逻辑原则:
对于&&,当第一个操作数为false时,将不会判断第二个操作数,因为此时无论第二个数结果为何,最后的运算结果一定为false。
对于||,当第一个操作数为true时,将不会判断第二个操作数,因为此时无论第二个数结果为何,最后的运算结果一定为true。
boolean f=true;
int n = 200;
boolean c=f||(n++>=0 && n<100);
System.out.println(c);//結果為true
System.out.println(n);//200
使用逻辑!运算符
!运算符相对简单,之后有一个boolean类型的变量参与运算,运算的值于该变量的值相反,变量为true时结果为false 变量为false时结果为true。
boolean flag=true;
int n=200;
boolean c=!flag||(n++>=0 && n<100);
System.out.println(c);//false
System.out.println(n);//201
赋值
= += -= *= /= %= &= ^= |= <<= >>=
"="称为赋值运算符,用于对变量赋值,关于赋值运算符,除了将右边的表达式计算出来赋给左边以外还具备如下特点:赋值表达式本身也有值,其本身之值即为所赋之值。
使用扩展赋值表达式
.在赋值运算符"="前加上其他运算符,即为扩展赋值运算符
ps:这里的其他运算符只能算术运算符
+=,-=,*=,/=,%=