zoukankan      html  css  js  c++  java
  • 013_运算符_算术

    一、运算符的分类:

      a)赋值运算符(=)
        将右边的值赋给左边。如 int a =3;
      b)算术运算符:(+,-,*,/,%,++,--)
        算术运算符按照操作数是1个还是2个分为:
          ba)一元运算符(++、--)

          一元运算符测试案例:

    package edu.aeon.test;
    
    public class Test {
    
        public static void main(String[] args) {
                int a = 3;
                int b = a++;   //执行完后,b=3。先给b赋值,再自增。
                System.out.println("a="+a+"	b="+b);
                int c = ++a;   //执行完后,c=5。先自增,再给b赋值
                System.out.println("a="+a+"	c="+c);
        }
    }

      测试结果截图:

        

          bb)二元运算符(+、-、*、/、%)       

            二元运算符类型提升问题:
              在整数运算中、如果两个操作数有一个为long,则结果为long
              没有long时,结果为int。即使操作数全为short,byte,结果也是int
              在浮点运算中、如果两个操作数有一个为double,则结果为double.
              只有两个操作数都是float, 则结果才为float.

              在二元运算符中、我们重点关注下%(取余)、其操作数可以为浮点数,一般使用整数。如:5.9%3.9=2.000000004、这里我们有个取余的要点:          

                负数%负数=负数;
                负数%正数=负数;
                正数%负数=正数;

                测试案例如下:              

    package edu.aeon.test;
    
    public class Test {
    
        public static void main(String[] args) {
            int a =-5%-3;
            System.out.println("a="+a);
            int b=-5%3;
            System.out.println("b="+b);
            int c=5%-3;
            System.out.println("c="+c);
        }
    }

    测试结果截图:

      

       c)逻辑运算符    

        ca)逻辑与(&&)
          true&&true为true
          false&&true为false
          false &&false为false
        cb)逻辑或(||)
          true||true为true
          true||false 为true
          false||false为false
          我们可以看出逻辑&&和逻辑或是用规律的、其规律为:在逻辑与(&&)中只要有一个false其结果为false、而在逻辑或(||)中有一个为true其结果为true、那么试想在逻辑与(&&)中第一个结果已经为false了我们还有必要计算第二个的结果吗?答案是没必要、因为第一个结果已经false了、你第二个值不管是true或false都对整个表达式的结果没有丝毫影响、所以为了提高效率、在java中逻辑(&&)和逻辑或(||)采用了短路的方式。从左到右计算,如果确定值则不会再计算下去。
    例如:boolean c=1>2 && 2>(3/0);此处不会抛异常、说明没有执行3/0.

        cc)逻辑非(!)

          !true为false

          !false为true

       d)位运算符   

        da)取反~
        db)按位与&
        dc)按位或|
        dd)按位异或^
        de)左移运算符<<   左移一位相当于乘2。
        df)右移运算符>>   右移一位相当于除2取商。

       e)扩展运算符

        

    运算符

    用法举例

    等效的表达式

    +=

        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

        f)三目条件运算符

          三目条件运算符,语法格式:x ? y : z   其中x为boolean类型表达式,先计算x的值,若为true,则整个三目运算的结果为表达式y的值,否则整个运算结果为表达式z的值。

          举例:

    1
    2
    3
    4
    5
           int score = 80int x = -100;
           String type = score < 60 "不及格" "及格";
           int flag = x > 0 1 : (x == 0 0 : -1);
           System.out.println("type= " + type);
           System.out.println("flag= "+ flag);

      最后我们来了解下运算符的优先级:

      


      R to L

    .   (   )   { }   ;     ,
      ++ --   ~ ! (data type)

    L to R

    * / %

    L to R

    + -

    L to R

    << >> >>>

    L to R

    <    >  <=  >=    instanceof

    L to R

    == !=

    L to R

    &

    L to R

    ^

    L to R

    |

    L to R

    &&

    L to R

    ||

    R to L

    ? :

    R to L

     =     *=   /=   %=  
       +=     -=   <<=   >>=     
      >>>=   &=   ^=     |=

     

    如有任何疑问可联系邮箱: 给我发邮件、或直接联系QQ:1584875179 || 点返回首页

  • 相关阅读:
    ABAP实现屏幕自己刷新和跳转功能
    SAP 邮件发送
    MIRO做发票校验时实现替代功能的多种方式
    SAP资产折旧,消息编号AA687:在上一年结算之后您只能记帐到新的一年
    SAP 月结F.19与GR/IR
    ABAP字符串的加密与解密
    ABAP DEBUG
    NUMBER_GET_NEXT
    OO ALV 学习参考
    Crontab定时任务配置
  • 原文地址:https://www.cnblogs.com/aeon/p/9800661.html
Copyright © 2011-2022 走看看