Java运算符

匿名 (未验证) 提交于 2019-12-02 21:53:32

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

【规则】

【小练习】

交换两个变量的值

//方法一:提供一个临时变量。

//方法二:当mn较大时,有可能出现精度损失

//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位对应的值。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!