第五节 运算符
(1)算术运算符
这里面需要注意:1.整除(/) :这个整除就是5/3=1……2. 我们舍弃余数2,取整数1.
2.取余(%):这个取余就是5%3=1……2. 我们舍弃整数1,取余数2.
3-1.i++:这个是先输出,在运算。运算:i + 1 = ?
3-2.++i:这个是先运算,在输出。运算:i + 1 =?
3.i++和++i的区别在于,前者在输出语句的结果为1,后者在输出语句的结 果为2。
4.i- -和- -i他俩 和 i++跟++i的区分一模一样,了解++,- -就理解了。
3-1
3-2
(2) 赋值运算符
1.+=:int a=5;
a+=2; //这个就相当于 a = 5+2 =7. 注意 a = 7 这个“=”叫做赋值号,是给a赋予了 一个值为7
2.-=:int a=5;
a-=2; //这个就相当于 a = 5-2 =3. 注意 a = 3 这个“=”叫做赋值号,是给a赋予了 一个值为3
3.*=: int a=5;
a*=2; //这个就相当于 a = 5*2 =10. 注意 a = 10 这个“=”叫做赋值号,是给a赋了 一个值为10
4./=: int a=5;
a/=2; //这个就相当于 a = 5/2 =2……1 注意 a = 2 这个“=”叫做赋值号,是给a赋 了一个值为2
5.%=: int a=5;
a%=2; //这个就相当于 a = 5%2 =2……1 注意 a = 1 这个“=”叫做赋值号,是给a赋 了一个值为1
6.=:这个叫赋值号 a=3 给a赋了一个值为3.
(3)比较运算符(关系运算符)
注意:
1.基本类型的变量、值不能和引用类型的变量、值使用 == 进行比较;boolean 类型的变量、值不能 与其他任意类型的变量、值使用 == 进行比较;如果两个引用类型之间没有父子继承关系,那么它 们的变量也不能使用 == 进行比较。
2.== 和 != 可以应用于基本数据类型和引用类型。当用于引用类型比较时,比较的是两个引用是否指 向同一个对象,但当时实际开发过程多数情况下,只是比较对象的内容是否相当,不需要比较是否 为同一个对象。
3.比较运算符输出结果只有两个:trun和false
(4)逻辑运算符
1.短路:只要前面的输出结果为false,那么就不会输出后面的结果了。
2.逻辑:就算前面的输出结果为false,也要输出后面的输出结果。
补充:^ 异或 用法:a^b 说明:真假=真 真真=假 假假=假 (输出结果两个不同为真,两个相同为假,) 这个游戏逻辑判断可能会使用到。
(5)位运算符(需要会二进制)
(1)& 按位进行与运算 (AND)
位与运算符为 & ,其运算规则是:参与运算的数字,低位对齐,高位不足的补零,如果对应的二进制位 同时为 1,那么计算结果才为 1,否则为 0。因此,任何数与 0 进行按位与运算,其结果都为 0。
5&12
(2)| 按位进行或运算 (OR)
位或运算符为 | ,其运算规则是:参与运算的数字,低位对齐,高位不足的补零。如果对应的二进制位 只要有一个为 1,那么结果就为 1;如果对应的二进制位都为 0,结果才为 0。 下面是一个使用位或运算符的表达式。
11|7
(3)^ 按位进行异或运算(XOR)
位异或运算符为 ^ ,其运算规则是:参与运算的数字,低位对齐,高位不足的补零,如果对应的二进制 位相同(同时为 0 或同时为 1)时,结果为 0;如果对应的二进制位不相同,结果则为 1。
11^7
(4)~ 按位进行取反运算(NOT)
位取反运算符为 ~ ,其运算规则是:只对一个操作数进行运算,将操作数二进制中的 1 改为 0,0 改为 1。
~10
需要注意:虽然~10的取反二进制为11111111 11110101,十进制为65525,但是但是它输出是-11!!! 因为二进制前面有个符号位:1为负,0为正; 而二进制10取反为-11
(5)位移运算符
位移运算符用来将操作数向某个方向(向左或者右)移动指定的二进制位数。表 2 列出了 Java 语言中的 两个位移运算符,它们都属于双目运算符。
①.左位移运算符
左移位运算符为 « ,其运算规则是:按二进制形式把所有的数字向左移动对应的位数,高位移出(舍 弃),低位的空位补零。
例如,将整数 11 向左位移 1 位的过程如图所示
从图 中可以看到,原来数的所有二进制位都向左移动 1 位。原来位于左边的最高位 0 被移出舍弃,再 向尾部追加 0 补位。最终到的结果是 22,相当于原来数的 2 倍。
②.右位移运算符
右位移运算符为 » ,其运算规则是:按二进制形式把所有的数字向右移动对应的位数,低位移出(舍 弃),高位的空位补零。
例如,将整数 11 向右位移 1 位的过程如图所示。
从图中可以看到,原来数的所有二进制位都向右移动 1 位。原来位于右边的最低位 1 被移出舍弃,再 向最高位追加 0 补位。最终到的结果是 5,相当于原数整除 2 的结果。
(6)三元运算符
语法格式:关系表达式 ? 表达式1 : 表达式2;
解释:问号前面的位置是判断的条件,判断结果为boolean型,为true时调用表达式1,为false时调用表达式2。其逻辑为:如果条件表达式成立或者满足则执行表达式1,否则执行表达式2。
完结了!!可以去动动脑给自己出出题做做实验