第一章 JAVA语言基础(4)

1.4 运算符

        1.4.1 赋值运算符

        赋值运算符用符号“=”表示,它是一个二元运算符(对两个操作数作处理),其功能是将右方操作数所含的值赋给左方的操作数。例如:

int a = 100;

        该表达式是将100赋值给a。左方的操作数必须是一个量,而右边的操作数则可以是变量(如a、number)、常量(如123、‘book’)、有效的表达式(如45*2)。

        由于复制运算符“=”处理时,会先取得右方表达式处理的结果,因此如果一个表达式中有两个以上的“=”运算符,会从最右方的“=”开始处理。

        1.4.2 算术运算符

        Java中的算术运算符主要有+(加号)、-(减号)、*(乘号)、/(除号)、%(求余),它们都是二元运算符。Java中算术运算符的功能及使用方式如表1.5所示。 

表1.5 JAVA算术运算符
运算符说明实例结果
+12.45f+1527.45
-4.56-0.164.4
*5L*12.45f62.25
/7/23
取余数12%102

        其中“+”和“-”运算符还可以作为数值的正负号,如+5,-7。

        1.4.3 自增和自减运算符

        自增、自减运算符是单目运算符,可以放在变量之前,也可以放在变量之后。操作元必须是一个整型或者一个浮点型变量。自增、自减运算符的作用是使变量的值加1或减1。

++a(--a)            //表示在使用变量a之前,先将a+(-)1
a++(a--)            //表示在使用变量a之后,先将a+(-)1
b = ++a             //先将a的数值+1,再赋值给b,若a初始为4,则现在a = 5,b = 5
b = a++             //将a的数值赋值给b,然后将a的数值+1,则现在a = 5,b = 4

        1.4.4 比较运算符

        比较运算符属于二元运算符,用于程序中的变量之间、变量和自变量之间以及其他类型的信息之间的比较。比较运算符的运算结果是boolean类型。当运算符对应的关系成立时,运算结果为ture,否则为false。如表1.6所示。

表1.6 比较运算符
运算符作用举例操作数据结果
>比较左方是否大于右方'a'>'b'整形、浮点型、字符型false
<比较左方是否小于右方165<456整形、浮点型、字符型ture
==比较左方是否等于右方'c'=='c'基本数据引用型、引用型ture
>=比较左方是否大于或等于右方479>=426整形、浮点型、字符型ture
<=比较左方是否小于或等于右方12.45<=45.5整形、浮点型、字符型ture
!=比较左方是否不等于右方'y'!='t'基本数据引用型、引用型ture

        1.4.5 逻辑运算符

        逻辑运算符是对true(真)和false(假)这两种逻辑值进行运算,运算后的结果仍是一个逻辑值。逻辑运算符包括&&(逻辑与)、||(逻辑或)、!(逻辑非)。逻辑运算符计算的值必须是boolean型数据。在逻辑运算符中,除了“!”是一元运算符之外,其他都是二元运算符。如表1.7所示。

表1.7 逻辑运算符
运算符含义用法结合方向
&&、&逻辑与op1 && op2从左到右
||逻辑或op1 || op2从左到右
逻辑非!op从右到左

        1.4.6 位运算符

        位运算的操作数类型是整型,可以是有符号的,也可以是无符号的。位运算符可以分为位逻辑运算符和位移运算符两大类。

        1.“按位与”运算

        位逻辑与实际上是将操作数转换成二进制表示方式,然后将两个二进制操作数对象从低位(最右边)到高位对齐,每位求与,若两个操作数对象同一位都为1,则结果对应位为1,否则结果中对应位为0。

        2.“按位或”运算

        位逻辑或实际上是将操作数转换成二进制表示方式,然后将两个二进制操作数对象从低位(最右边)到高位对齐,每位求或,若两个操作数对象同一位都为0,则结果对应位为0,否则结果中对应位为1。

        3.“按位取反”运算

        取反运算符,实际上是将操作数转换成二进制表示方式,然后将各位二进制位由1变为0,由0变为1。

        4.“按位异或”运算

        位逻辑异或实际上是将操作数转换成二进制表示方式,然后将两个二进制操作数对象从低位(最右边)到高位对齐,每位求异或,若两个操作数对象同一位不同时,则结果对应位为1,否则结果中对应位为0。

        5.移位操作

        除了上述运算符,还可以对数据按二进制进行移位操作。JAVA中的移位运算符有三种:

        <<: 左移。

        >>: 右移。

        >>>:无符号右移。

        1.4.7 复合赋值运算符

        

表1.8 复合赋值运算符
运算符含义举例等价效果
+=相加结果赋予左侧a += ba = a + b
-=相减结果赋予左侧a -= ba = a - b
*=相乘结果赋予左侧a *= ba = a * b
/=相除结果赋予左侧a /= ba = a / b
%=取余结果赋予左侧a %= ba = a % b
&= 与结果赋予左侧a &= ba = a & b 
|=或结果赋予左侧a |= ba = a | b
^=异或结果赋予左侧a ^= ba = a ^ b
<<=左移结果赋予左侧a <<= ba = a << b
>>=右移结果赋予左侧a >>= ba = a >> b
>>>=无符号右移结果赋予左侧a >>>= ba = a >>> b

        1.4.8 三元运算符

        三元运算符的用法如下:

条件式 ? 值1 :值2

        三元运算符的运算法则是:若条件式的值位ture,则整个表达式取值1,否则取值2.

        1.4.9 运算符的优先级

        

表1.9 运算符的优先级
优先级描述运算符优先级描述运算符
1圆括号()9按位与运算&
2正负号+、-10按位异或运算^
3一元运算符++、--、!11按位非运算|
4乘除*、/、%12逻辑与运算&&
5加减+、-13逻辑或运算||
6移位运算<<、>>、>>>14三元运算符?=
7比较大小<、>、>=、<=15赋值运算符=
8比较是否相等==、!=

  • 11
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值