运算符
- 在运算过程中有大类型参与运算那么输出结果为大类型
算数运算符
(+ - * / )% ++ –
%:取余
++:自增
++等于i=i+1 如++在前就先自增再运行赋值
++在后就是先运行 赋值后自增 例如
int a=1;
int b=++a;//++ 就是a=a+1 a++就是先运行给b赋值 再自增 所以b=2 a=2
//注意:每自增一次i就会根据自增的次数改变定义的值(运行变量的顺序是关键)
int c=a++;//++a就是运行前先自增再给b赋值 所以c=2 a=3(自增了两次)
System.out.println(b);
System.out.println(a);
System.out.println(c);
(–):自减 与自增同理
int d=4;
int e=d--;
int f=--d;
System.out.println(d);//--与++同理 所以d=2
System.out.println(e);//e=4
System.out.println(f);//f=2
赋值运算符号
=
关系运算符
1>,>=,<,<=,==,!=
-关系运算符的结果为布尔值 符合为真 不符合为假
==等于 !=不等于
逻辑运算符
&&(and 理解为与)||(or 理解为或)!(非 取相反的)
&&:逻辑与运算 两个变量都为真结果才为真 当发现一个变量为假false时 就会停止运行后面的
||:逻辑或运算 两个变量有一个为真结果就为真
!:如果结果是真则变为假 结果为假则变为真
public class Demo5 {
public static void main(String[] args) {
// &&(and 理解为与)||(or 理解为或)!(非 取相反的)
boolean a=true;
boolean b=false;
System.out.println(a&&b);//逻辑与运算 两个变量都为真结果才为真 当发现一个变量为假false时 就会停止运行后面的
System.out.println(a||b);//逻辑或运算 两个变量有一个为真结果就为真
System.out.println(!a&&b);//如果结果是真则变为假 结果为假则变为真
//短路测试
int y=1;
int t=2;
System.out.println(!(y>t));//取相反的
System.out.println(y);
System.out.println((y>t)&&(++y<t));
System.out.println(y);//因为y>t值为false假 所以后面的自增没有运行 y还是=1
位运算符
& ,| , ^ . ~, >> , << ,>>>
&(AND与)全1为1 有0为0
|(or或)有1为1 全0则0
^(异)不同为1 相同为0
~(非)取反
例如:
A=0010 0101
B=1100 1101
A$B=0000 0101
A|B=1110 1101
A^B=1110 1000
~B=0011 0010
- << 左移 >>右移 二进制
条件运算符
?,:
偷懒必备 需掌握
如果一个值为true 则结果为?(y)否则为:(z)
//X ?Y Z: 如果满足条件
int salary=5000;
String type =salary >8000 ?"还可以":"垃圾";
System.out.println(type);
拓展赋值运算符
+= -= *= /=
偷懒必备
例如:
a+=b //就是a=a+b 其他同理
Java运算优先级
单目乘除为关系,逻辑三目后赋值
代码举例
package operator;
//逻辑运算符
public class Demo5 {
public static void main(String[] args) {
// &&(and 理解为与)||(or 理解为或)!(非 取相反的)
boolean a=true;
boolean b=false;
System.out.println(a&&b);//逻辑与运算 两个变量都为真结果才为真 当发现一个变量为假false时 就会停止运行后面的
System.out.println(a||b);//逻辑或运算 两个变量有一个为真结果就为真
System.out.println(!a&&b);//如果结果是真则变为假 结果为假则变为真
//短路测试
int y=1;
int t=2;
System.out.println(!(y>t));//取相反的
System.out.println(y);
System.out.println((y>t)&&(y++<t));
System.out.println(y);
System.out.println(2<<3);
//拓展赋值运算符
int m1=10;
int m2=20;
System.out.println(m1);
m1+=m2;
System.out.println(m1);
//条件运算符
//X ?Y Z: 如果满足条件
int salary=5000;
String type =salary >8000 ?"还可以":"垃圾";
System.out.println(type);
}
}