赋值运算符
1.赋值运算符就是将运算后的值,赋值给变量
2.赋值运算符的左边只能是变量,右边可以是变量、表达式、常量、右边的值赋值给左边的变量
3.赋值运算符的分类
基本赋值运算符 =
int a = 100;
复合赋值运算符
+= -= *= /= %=
a += 2;等价于 a = a + 2;
4.有趣的案例
byte b = 3;b = b + 4; // 报错,类型错误
byte b = 3;b += 4; // 正常
byte b = 3;b++; // 正常
byte b = 3;b = b + 1; // 报错,类型错误
关系运算符
1.关系运算符(比较运算符)的结果都是Boolean型,也就是要么true要么false
2.关系运算符组成的表达式,称为关系表达式。经常用在if结构的条件中或循环结构的条件中
3.关系运算符
== 相等于 不要写成 =
!= 不等于
< 小于
> 大于
<= 小于等于
>= 大于等于
A instanceof B 表示A是否是B这个类的对象
public class Hello {
public static void main(String[] args) {
int a = 100;
int b = 200;
System.out.println(a > b); // false
System.out.println(a < b); // true
System.out.println(a >= b); // false
System.out.println(a <= b); // true
System.out.println(a == b); // false
boolean bool = a != b;
System.out.println(bool); // true
}
}
逻辑运算符
1.用于连接多个关系表达式,最终的结果也是一个Boolean值
2.逻辑运算符
短路与&&
短路或||
取反!
逻辑与&
逻辑或|
逻辑异或^
3.逻辑运算规则
a&b; 当a和b同时为true,则结果为true,否则为false
a&&b; 当a和b同时为true,则结果为true,否则为false
a|b; 当a和b,有一个为true,则结果为true,否则为false
a||b; 当a和b,有一个为true,则结果为true,否则为false
a^b; 当a和b不同时,则结果为true,否则为false
!a; 当a为true,则结果为false,当a为false,结果为true
4.逻辑和短路的区别
& 不管真假两边都运算
&& 左边为假,右边就不运算了,提高效率
| 不管真假两边都运算
|| 左边为真,右边就不运算了,提高效率
public class Hello {
public static void main(String[] args) {
// int x = 100;
// int y = 200;
// if (x++ == 100 && ++y == 200) {
// x = 10;
// }
// // 需要注意if中的x是先赋值在自增,所以(x++ == 100) 其实是 (100 == 100)
// System.out.println("x=" + x + " y=" + y); // 101 201
// int x = 100, y = 200;
// if (x++ == 100 || ++y == 200) {
// x = 10;
// }
// System.out.println("x=" + x + " y=" + y); // 10 200
boolean x = true;
boolean y = false;
short z = 100;
if ((z++ == 100) && (y = true)) z++;
if ((x = false) || (++z == 100)) z++;
// 需要注意的地方:如果{}只有一条可以省略不写
System.out.println("z=" + z); // 103
}
}