目录
表达式
表达式由运算符和操作数组成
不同数据类型之间比较
- 整型之间是可以相互比较的
- 浮点型之间也是可以进行比较的
- 浮点型和整型之间可以进行比较
- 整型和字符型之间是可以进行比较的
- 字符串和整型、浮点型以及字符型是不可以进行比较的
- 布尔类型,它是不能和任何其他数据类型进行比较的
运算符
算术运算符
除法:分子分母都是整型,结果为整除后的结果,正数向下取整,负数向上取整。
double result = 13 / 5; // 2.0 先整除得2,类型转换成double 2.0
result = -13 / 5; // -2.0
result = 13 / -5; // -2.0
result = -13 / -5; // 2.0
result = 13.0 / 5; // 2.6
赋值运算从右向左执行,故a=a*a=9,a+=9,a=a+9=3+9=12
int a = 3;
a += a *= a; // a = 12
自增自减
赋值运算符
关系运算符
比较的结果是布尔值
浮点数与整数进行比较,只要值相等就返回true。
float f = 5.0f;
long l = 5;
float f2 = 4.0f + 1.0f;
System.out.println(f == l); // true
System.out.println(f == f2); // true
// 从键盘读入一个整数
Scanner s = new Scanner(System.in);
int n = s.nextInt();
((c-1)>=d)==1这个条件表达式是错误的,(c-1)>=d的结果是boolean值,而boolean值是不能和整型数据1进行比较的,因此会出现编译错误
逻辑运算符
逻辑运算符的结果是布尔类型,逻辑运算符的操作数都是布尔型的
与 && 或&
或 || 或 |
非 !
&&和||运算符又叫做短路运算符,若第一个表达式的值就能决定表达式最后的结果,运算符右边的表达式就不再计算了。
Error:(18, 30) java: 二元运算符 '&&' 的操作数类型错误
第一个类型: int
第二个类型: int
System.out.println(5 && 1); // 报错
Error:(18, 12) java: 不兼容的类型: int无法转换为boolean
if(3){
System.out.println(""); // 报错
}
条件运算符
java中的条件运算符是三目运算符
格式:布尔表达式?表达式1:表达式2
运算符的优先级
位运算符
参考:慕课网-Java工程师课程