2.运算符
运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等。具体有:算术运算符、赋值运算符、比较运算符(关系运算符)、逻辑运算符、位运算符、三元运算符。
2.1算术运算符
注意:
1)除:/
int i = 12;
int j = i/5;
double d = i / 5;
double d1 = i/5.0;
System.out.println(j);//2
System.out.println(d);//2.0
System.out.println(d1);//2.4
2)求余:%
结果的符号取决于被模数(%左边的数)
其实也是正常求余后的符号
int i2 = -12 % 5;
int i3 = 12 % (-5);
i2结果为-2,i3结果为2
3)自增或自减的前后位置区别:i++和++i
该练习还与逻辑运算符相关
练习的结果分别是22 ,21 ,72, 71 (前一个是x的值,后一个是y的值)
2.2赋值运算符
= += -= *= /= %=
【例子】
int i = 10;
i += 20; //
//i = i + 20; 两句语句的结果都是 i最后的值为30
【注意】
short s = 10;
s = s + 5;//报编译的异常,整数5默认是int类型
s = (short)(s + 5);//不建议如此实现,容易损失精度
s += 5;//既可以实现运算,又不会改变s的数据类型。
2.3比较运算符
==,<=,>=,!=,<,>,instanceof 检查是否是类的对象
【例子】
第六行被注释掉时:z的值为46;
第六行未被注释掉时,z的值为43。
1)运行第七行:先判断 z是否等于42,然后自增,此时z变为43,短路与的前一个条件为真,故继续看下一个条件,将true赋值给y,然后判断真假,故第七行的整个if里面为真,运行z++;此时z等于44
2)运行第八行:将false赋值给x,短路或的前一个条件为假,故继续看下一个条件,z先自增变为45,然后判断z是否等于45,结果为等于,所以运行z++,最终z变为46
1)首先第六行的if条件是真,则运行第七行的代码,否则运行第八行的代码(即若y为true,则运行第七行的语句,然后直接运行下面的输出语句)
2)y的值不是true,故运行第八行的if。故z的最终值为43.
【注意】
比较运算符的结果都是boolean型,即要么是true,要么是false
2.4逻辑运算符
运算符两边都是boolean值
【注意】
1)“&”和“&&”的区别:
单&时,左边无论真假,右边都进行运算;
双&时,如果左边为真,右边参与运算,如果左边为假,则右边不参与运算。
2)一般使用&&和||
2.5位运算符
位运算是直接对二进制进行运算
【注意】
1)如何分辨逻辑运算符的&和位运算符的& :
————如果&符号两边的数据类型是boolean值,则是逻辑运算符;
————如果&符号两边的数据类型是数字,如上图,则是位运算符(按位与)
2.6三元运算符
【注意】
1)运算符肯定会返回一个结果,三元运算符返回的结果与表达式1,2的类型一致
2)三元运算符与if语句的互换和区别:三元运算一定可以转换为if语句,反之则不一定;if语句中的代码块可以包含多个语句,但三元运算不行
2.7运算符的优先级
原文:https://www.cnblogs.com/ffforward/p/15090244.html