纯css打造立体时钟
  • 12
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
By_jie

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+"\tb="+b);
            int c = ++a;   //执行完后,c=5。先自增,再给b赋值
            System.out.println("a="+a+"\tc="+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

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

 

posted @ 2018-10-16 21:06  1024军团  阅读(264)  评论(0编辑  收藏  举报