运算符

       运算符(Operator)是用于标明对数据执行某种运算的特定符号,如“+”“-”“*”“/”分别用于标明算数加法、减法、乘法和除法运算。参与运算的数据称为操作数。Java提供了丰富的运算符,主要包括以下几类:

1.算数运算符:+-*/%++--

2.关系运算符:<><=>===!=

3.逻辑运算符:!&&||

4.位运算符:~&|^<<>>>>>

5.赋值运算符:简单复制(==)、复合算术赋值(+=-=*=/=%=)和复合各位算术赋值(&=|=^=>>=<<=>>>=

6.条件运算符:?:


一、算术运算符

     算术运算符分为单目运算符(只有一个操作数)和双目运算符(有两个操作数),参与算术运算的操作数可以是整数或浮点型数据。

                                                                                                    双目运算符

                                                                                 运算符             功能                          用法举例

                                                                                     +                    加           a+b

                                                                                     -                    减            a-b

                                                                                     *                    乘         a*b

                                                                                     /                    除            a/b

                                                                                    %                 取余           a%b


                                                                                                       单目运算符

                                                                                   运算符              功能                           用法举例

                                                                                     +                    正值         +a

                                                                                     -                     负值         -a

                                                                                   ++                    自增         ++a a++

                                                                                    --                    自减          --a a--

注意:

1.java语言对运算符“+”进行了扩充,可以用来连接两个字符串。例如“abc+123”的结果“abc123”。

2.两个整数相除的结果取其整数部分。例如,3/2的结果是1而不是1.5.如果参与运算的操作数有一个为小数,则结果为小数。例如,3.0/2的结果为1.5

3.取值运算(%)是求两个数相除的余数。Java语言即可对整数取余,也可以对小数取余。例如,30%7=2  16.3%5=1.3

4.可以对char类型的数据进行算术运算,但不能对boolean类型的数据进行算术运算,这是因为char类型的数据能自动转换为整数或浮点型,而boolean类型的数据不能与任何其他数据类型转换。例如,a%4=1

5.++--)运算符的操作符必须是变量,不能是常量或表达式。可以放在操作数前,也可以放在操作数后,功能是对变量增1(减1)。从赋值的角度,++aa++是一样,都是把a的值增1,但从参与表达式的运算角度看,结果是不同。++a先对a1,然后用增1的值进行计算;a++先用a的值参与计算,然后对a1.


二、关系运算符

          关系运算符用于判断两个操作数的等价性和大小关系,得到的结果为布尔类型,取值为truefalse

 假如下表中  a=2     b=5,

                                                                          运算符                   含义                     用法举例                        比较结果 

                                                                               <                       小于         a<b                                true

                                                                             <=                    小于等于        a<=b                            true

                                                                               >                       大于          a>b                            false

                                                                              >=                  大于等于      a>=b                            false

                                                                              ==                     等于          a==b                           false

                                                                              !=                    不等于       a!=b                              true

注:关系表达式常用于逻辑判断,例如用于if语句中的条件判断、循环语句中的循环条件等。


三、逻辑运算符

逻辑运算符可以对boolean类型数据进行逻辑上的“与”、“或”、“非”、“异或”等运算符,结果仍为boolean类型,通常用于程序的流程控制。

                                                                  a              b              !a                a&b              a|b               a^b             a&&b            a||b

                                                                true        true          false             true              true             false            true             true

                                                                true        false         false            false             true              true             false           true  

                                                               false        true            true            false              true             true              false          true

                                                               false       false          true              false              false            false           false         true

                                                               

       Java逻辑运算符包括&(逻辑与)|(逻辑或)!(逻辑非)^(逻辑异或&&(短路与||(短路或)。他们区别:利用&|做逻辑运算时,运算符左右两边的表达式都会被运算执行,最后两表达的结果在进行与、或运算。利用&&||做逻辑运算时,如果只计算运算符左边表达式的结果即可确定与、或的结果,则右边的表达式将不会执行。比如在计算表达式“a&&b”时,如果a的结果为false,则可能定“与”运算的结果只能为false,于是不再计算操作数b的值,而直接获得最终结果fsalse

 

四、位运算符

         位运算符用来对整型(包括byteshortintlong)或字符型(char)数据的二进制运算,运算结果为一个整数。因为数据在计算机内存中是以二进制的形式存放的,因此在使用位移运算符时一定要知道不同进制间的转换方法,如十进制转换为二进制、十六进制转换为二进制。

1. &按位与。参与运算的两个值,如果两个相应都为1,则该位的结果为1,否则为0,即0&0=00&1=01&0=01&1=1

2.|按位或。参与运算的两个值,只要两个相应位中有一个为1,则该位的结果为1,即0|0=00|1=11|0=11|1=1

3.^按位异或。参与运算的两个值,只要两个相应位相同,则结果为0,否则为1,即0^0=10^1=11^0=11^1=0

注意:当参与运算的操作数是boolean类型时,运算符&|^是逻辑运算符,实现逻辑与、逻辑或以及逻辑异或的运算,当参与运算的操作数是整数类型(包括byteshortintelong)或字符类型(char)时运算符&|^是位运算符,实现按位与、按位或、按位异或的运算。

4.>>右位移。a>>b将整数a的 二进制形式逐位右移b位,左侧(高位)空余出的b位补原来的符号位,原来最右侧的b位被丢弃。

5.<<左位移。a<<b将整数a的 二进制形式逐位左移b位,右侧(高位)空余出的b位补0,原来最左侧的b位被丢弃。

6.>>>无符号右移。a>>>b将整数a的二进制形式逐位右移b位,左侧(高位)空余出来的b位补0,原来最右侧的b位被丢弃。

 

五、赋值运算符

         赋值运算符(=)的功能是将运算符“=”右侧表达式的计算结果赋值给最左侧的变量,格式为:变量=表达式。需要强调的是“=”左侧必须是一个已经声明的变量,而不允许是常量或表达式,例如:int i=2j=3;(合法)j=i+5;(合法)10=i+j;(非法)i+j=10;(非法)。在赋值运算符两则的类型不一致的情况下,如果左侧变量的数据类型的表示范围大,则把右侧的数据自动转换为与左侧相同的类型的数据类型,然后赋给左侧变量,否则,需要使用强制类型转换运算符。

        将赋值运算符和其他运算结合起来可以组合成复合赋值运算符 ,以实现简化的运算标记效果。如下图表示:

                                                                              运算符                              使用格式                           功能说明

                                                                                   +=                                    a+=b                                 a=a+b 

                                                                                    -=                                    a-=b                                  a=a-b

                                                                                  *=                                      a*=b                                 a=a*b  

                                                                                 /=                                        a/=b                                  a=a/b  

                                                                                %=                                      a%=b                               a=a%b

                                                                                &=                                      a&=b                                  a=a&b

                                                                                 |=                                         a|=b                                 a=a|b 

                                                                                 ^=                                         a^=b                                 a=a^b

                                                                               <<=                                      a<<=b                                 a=a<<b

                                                                               >>=                                       a>>=b                                a=a>>b

                                                                              >>>=                                     a>>>=b                              a=a>>>b

         其中a必须是变量,而b可以是变量,常量或表达式等。可以看出,只有当一个变量和一个表达式进行运算且要将运算结果保存到当前变量中时,才可以使用复合赋值运算符来简化表示,例如:int a=5,b=6; a*=100-b;//等价于a=a*100-b;

 

六、条件运算符

          条件运算符?:是java语言中唯一一个三目运算符(需要三个操作数),其一般格式如下:<表达式1>?<表达式2>:<表达式3>,其中<表示式1>必须是boolean类型,系统首先计算<表达式1>的值,如果该值为true,则将<表达式2>的值作为整个表达式的最终结果,否则将<表达式3>的值将作为整个表达式的最终结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值