3.运算符
运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等。包括:算术运算符、赋值运算符、比较运算符(关系运算符)、逻辑运算符、位运算符、三元运算符。
3.1算术运算符:
正号: + 负号: -
连接符: +
注意:1)除:/
2)取模:%:取余数. 结果的符号取决于被模数(%左边的数)
)前++:先自增1,后做运算;后++:先做运算,后自增1
--------------------------------------------------------------------------
/后++
//11
//10
------------------------------------------------------------------------
//ǰ++
//11
//11
-----------------------------------------------------------------------------
4)连接符 +:String字符串与其他数据类型只能做连接运算,且结果为String类型。
“+”除字符串相加功能外,还能把非字符串转换成字符串。
【举例】:
class Testjia
{
//输出:5+5=55
//输出:93
//输出:**
}
3.2赋值运算符:
【举例】
int i= 12;
i *= 5;//与上一行代码同样的意思
【注意】
short s = 10;
s = s + 5;//报编译的异常
s = (short)(s + 5);//不建议如此实现,容易损失精度
s += 5;//既可以实现运算,又不会改变s的数据类型。
3.3比较运算符(关系运算符)
instanceof 检查是否是类的对象
【举例】
范例 | 结果 |
true | |
false |
【注意】
③if(i > 1 && i < 101 < i < 10
3.4逻辑运算符(运算符的两端是boolean值)
a | b | a&b | a|b | !a | a^b | a&&b | a||b |
true | true | true | true | false | false | true | true |
true | false | false | true | false | true | false | true |
false | true | false | true | true | true | false | true |
false | false | false | false | true | false | false | false |
【注意】
①逻辑运算符用于连接布尔型表达式,在Java中不可以写成3<x<6,应该写成x>3 & x<6 。
②“&”和“&&”的区别:
- 单&时,左边无论真假,右边都进行运算;
- 双&时,如果左边为真,右边参与运算,如果左边为假,则右边不参与运算。
“|”和“||”区别同理,||时:左边为真,右边不参与运算。我们使用的时候,选择&&和||
③异或( ^ )与或( | )的不同之处是:当左右都为true时,结果为false。
理解:异或,追求的是“异”!
3.5位运算符(两端是数值类型的数据)
注意:无<<<(无符号左移)
运算符 | 运算 | 范例 |
左移 | 3 << 2 = 12 --> 3*2*2=12 ;m<<n结果:m*(2^n) | |
右移 | 3 >> 1 = 1--> 3/2=1 ;m>>n结果:m/(2^n) | |
无符号右移 | 3 >>> 1 = 1 --> 3/2=1;m>>>n结果:m/(2^n) | |
& | 与运算 | 6 & 3 = 2 |
| | 或运算 | 6 | 3 = 7 |
^ | 异或运算 | 6 ^ 3 = 5 |
~ | 反码 | ~6 = -7 |
【规则】
【小练习】
交换两个变量的值
//方法一:提供一个临时变量。
//方法二:当m和n较大时,有可能出现精度损失
//m = 12 + 5;
//n = 17 - 5;
//m = 17- 12
//方法三:优点:没有上面两种方法的缺点。缺点:难!
//(m ^ n) ^ n == m
//(m ^ n) ^ m == n
3.6三元运算符
(条件表达式)?表达式1 :表达式2;
若条件表达式结果为true,运算后的结果是表达式1;
若条件表达式结果为false,运算后的结果是表达式2;
【注意】
三元运算符与if-else的联系与区别:三元运算符可简化if-else语句;三元运算符要求必须返回一个结果;if后的代码块可有多个语句;使用三元运算符的,一定可以转换为if-else,反之不一定成立。
【小练习】如何使用三元运算符,输出三个数中的较大值。
int max2 = (max1 > k)? max1 : k;
3.7运算符的优先级
●运算符有不同的优先级,所谓优先级就是表达式运算中的运算顺序。如下表,上一行运算符总优先于下一行;只有单目运算符、三元运算符、赋值运算符是从右向左运算的。
【小练习】输出60的十六进制。
//法一:自动调用Integer类现成的方法
法二:手动的方式,从控制台输出60的十六进制。
//获取到i的最低4位对应的值。
来源:博客园
作者:superjishere
链接:https://www.cnblogs.com/superjishere/p/11776234.html