运算符
算数运算符
- %表示模运算,即取余
- 在进行加减乘除时,如果有long或者double类型参与,最后的类型会变成long或double,如果没有。那么结果都将是int,无论是否有int类型参与
- 如果有小数参与,结果都将变成小数类型
public class demo {
public static void main(String[] args) {
int a=10;
int b=21;
System.out.println(b%a);
long c=123L;
int d=123;
short e=10;
byte f=8;
System.out.println(e+f);
double g=12.3;
System.out.println(g+c);
float h=123.3F;
System.out.println(h+d);
}
}
++和-- 表示自增和自减
public class demo {
public static void main(String[] args) {
int a=3;
int b=a++; //++在后先赋值后自增
System.out.println(a);
System.out.println(b);
int c=++a; //++在前先自增在赋值
System.out.println(c);
System.out.println(a);
}
}
**++在后,先赋值再自增,++在前,先自增在赋值 **
–同理
关系运算符
- 关系运算符返回的结果是正确或错误,布尔值
- 不等于的符号是!=
逻辑运算符
- 与或非
在与运算中,两个变量都为真,结果才是真,如果第一个变量为假,就不会再去判断(执行)第二个变量,即短路运算
public class demo {
public static void main(String[] args) {
int a=5;
boolean b=(a<4)&&(a++<4);
System.out.println(a);
}
}
位运算符
A=0011 1100
B=0000 1101
A&B=0000 1100 (与)
A|B =0011 1101 (或)
A^B =0011 0001(异或) 相同为0,不同为1
~B=1111 0010 (非)
2*8=16 2×2×2×2=16
<< 左移一位,*2
>>右移一位,/2
2×8=2×2^3 左移三位
System.out.println(2<<3);
拓展赋值运算符
+= a+=b==a=a+b
-= …
*=…
/=…
三元运算符
x ? y : z
如果x==true, 则结果为y, 否则结果为z
public class demo {
public static void main(String[] args) {
int score=90;
String type= score <60 ? "不及格" : "及格";
System.out.println(type);
}
}