语法基础(二. 常用的5种类型运算符)
(如有错误,欢迎指正,感谢!)
运算符
- 通过运算符操作变量,进行计算。
- 常用的5种类型运算符: 算术运算符、连接运算符、关系运算符、赋值运算符和逻辑运算符。
算数运算符
算数运算符 | 名称 | 举例 |
---|---|---|
+ | 加法 | 1+2 |
- | 减法 | 2-1 |
* | 乘法 | 1*2 |
/ | 除法 | 10/3=3 |
% | 求余 | 10%3=1 |
++ | 自增 | int a=10; a++ |
– | 自减 | a–; |
注意:
- “/”,当除法左右两边都是整型时,结果也为整型(结果取整,不含小数)
若有一个为浮点型,结果则为浮点型(结果包含小数)
特殊情况:
当 10/0,会发生异常: / by zero
当10/0.0,不发生异常,但结果为:Infinity
当 10%0,会发生异常: / by zero
当10%0.0,不发生异常,但结果为:NaN
原因:(可能并不适合在语法基础篇中解释,在此粗略讲解)
- 浮点数在计算机中遵循IEEE 754标准
该标准中规定了Infinity与NaN出现的情况
详情可见: 百度百科–IEE 754
赋值运算符
赋值运算符 | 名称 | 举例 |
---|---|---|
= | 赋值 | c=a+b;将a+b得到的值赋给c |
+= | 加等于 | c += a; 相当于c = c + a |
-= | 减等于 | c -= a; 相当于c = c - a |
*= | 乘等于 | c *= a; 相当于c = c * a |
/= | 除等于 | c /= a; 相当于c = c / a |
%= | 模等于 | c %= a; 相当于c = c % a |
关系运算符
关系运算符 | 名称 | 举例 | 结果 |
---|---|---|---|
> | 大于 | 3>2 | true |
< | 小于 | 3<2 | false |
== | 等于 | 3==3 | true |
>= | 大于等于 | 4>=2 | true |
<= | 小于等于 | 4<=2 | false |
!= | 不等于 | 4!=2 | true |
- 比较结果是一个布尔值(true或false)
- == 、 != 两边的操作数既可以是数值类型,也可以是引用类型
逻辑运算符
逻辑运算符 | 名称 | 作用 | 举例 | 结果 |
---|---|---|---|---|
&& | 与 | 左右两边的布尔表达式都为真,结果才为真 | true&&false | false |
II | 或 | 两边布尔表达式只要有一个为真,结果为真 | true&&false | true |
! | 非 | 布尔表达式为真,结果为假 布尔表达式为假,结果为假 | !(true) | false |
^(用作逻辑运算符时) | 异或 | 两边布尔表达式都为真,结果为假 只有一边的表达式为真,结果为真 | true^true | false |
- 运算符两边应该是boolean或者关系表达式
- 在复合逻辑运算中,一旦左边可以判断出结果为真或假,右边代码不会再执行
例如:( 1 > 2 ) && ( 1 < 3 ) ,左边已经判断出假,右边不再执行与判断(短路现象)
位运算符
位运算符 | 名称 | 作用 | 举例 | 结果 |
---|---|---|---|---|
& | 按位与 | 两个位都为1,结果才为1 | 2&4 | 0 |
I | 按位或 | 两个位有一个为1,结果为1 | 2I4 | 6 |
~ | 按位求反 | 位为0,结果为1 位为0,结果为1 | ~2 | -3 |
^(用作位运算符时) | 按位异或 | 两个位都为0,结果为1 | 2^4 | 6 |
(在此粗略解释)
- 有符号整型数在计算机以补码形式存在
所以位运算符是针对整型数补码操作的。
- 补码是原码变为反码再加1来的
连接符
连接符 | 举例 | 作用 |
---|---|---|
+(作为连接符) | System.out.println(“12”+34+“ef”); String string= “A”+2+0.1; // string = A20.1 | 让任何类型的数据与字符串使用连接符连接起来,其结果都是字符串类型的数据 |
参考资料:
https://www.cnblogs.com/xiaozhongfeixiang/p/11502971.html
( 注:部分资料参考网络,如有侵权请联系。)