Java学习2:运算符 逻辑控制
Java的第二次学习
接上一篇博客里未完的数据类型与运算符以及新的内容逻辑控制
一、运算符
1.算术运算符
- 基本四则运算符 + - * / %
int/int结果还是int,需要使用double来计算。
0不能作为除数。
%表示取余,不仅仅可以对int求模,也能对double来求模。 - 增量赋值运算符 += -= *= /= %=
int a = 10;
a += 1; //等价于a=a+1
System.out.println(a);
- 自增/自减运算符 ++ –
结论:
如果不取自增运算的表达式的返回值,则前置自增和后置自增没有区别。
如果取表达式的返回值,则前置自增的返回值是自增之后的值,后置自增的返回值是自增之前的值。
2.关系运算符
主要有六个 == != < > <= >=
注意:
关系运算符的表达式返回值都是Boolean类型。
3.逻辑运算符
主要有三个 && || !
注意:
逻辑运算符的操作数和返回值都是Boolean类型。
- 逻辑与&&
- 逻辑或||
- 逻辑非!
- 短路求值
4.位运算符
主要有4个 & | ~ ^
位操作表示按二进制位运算
- 按位与&:如果两个二进制位都是1,则结果为1,否则结果为0。
- 按位或|:如果两个二进制位都是0,则结果为0,否则结果为1。
- 按位取反~:如果该位为0则转为1,如果该位为1转0。
- 按位异或^:如果两个数字的二进制位相同,则结果为0,相异则结果为1。
5.移位运算
有3个 << >> >>>
都是按照二进制来运算
- 左移<<:最右补0
- 右移>>:最左补符号位 正数补0,负数补1
- 无符号右移>>>:最右不要 最左补0
6.条件运算符
- 表达式1?表达式2:表达式3
是java中唯一的一个三目运算符
7.运算符的优先级
运算符之间是有优先级的