• 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 || 点返回首页

  • 相关阅读:
    竖版文字排列实现《金刚般若波罗蜜心经》
    前端气泡效果实现的方式
    纯CSS绘制三角形
    什么是块级格式上下文
    绝对定位元素left、right、top、bottom值与其margin和宽高的关系
    currentColor在CSS的含义
    HTML/css清除浮动的几种方式
    W3C中不同标准的含义
    table表格标签的属性
    输入你的生日某年某月某日,判断这一天是这一年的第几天、星期几?
  • 原文地址:https://www.cnblogs.com/aeon/p/9800661.html
Copyright © 2020-2023  润新知