Java学习笔记四——运算符

算术运算符

  加减乘除(+、-、*、/)就不说了。

求余运算符%

  描述:第一个操作数除以第二个操作数,得到一个整除的结果后剩下的值就是余数

  注意:求余预算的结果不一定总是整数,当操作数是浮点数时,结果可能是小数。

  

double a = 5.2;
double b = 3.1;
double mod = a%b;
System.out.println(mod);//值为2.1

自增运算符++

  自增运算符++有两个要点:

  1. ++是单目运算符只能操作一个操作数
  2. ++只能操作在数值型(整数、浮点型)的变量上

  自增运算符有两种用法:

  1. 在操作数前面,表示先将操作数加1,再参与其它运算
  2. 在操作数后面,表示先参与其它运算,最后将操作数加1
        int a = 1;
        a++;
        System.out.println(a);//值为2
        
        double b = 5.2;
        b++;
        System.out.println(b);//值为6.2
        
        int c = ++a*4;
        System.out.println(c); //值为12,因为a本为2,先加1然后乘4
        int d = a++*4;
        System.out.println(d); //值为12,因为a本为3,先乘4,赋值给d,a再加1

自减运算符--

  用法和自增运算符差不多,只是将操作数减1

        double b =1.2;
        b--;
        System.out.println(b); //0.19999999999999996,因为Java本身的double不精确
        
        int a = 5;
        int c = --a*5;
        System.out.println(c); //20
        
        int d = c--*5;
        System.out.println(d);  //100

位运算符

  位运算符是对操作数的二进制数据进行运算的,所以要得到正确结果,得先将数据化成二进制才明白。

  Java中有7中位运算符:

  • &:按位与,双目运算符,对两个操作数的二进制进行运算,当两位同时为1才返回1
  • |:按位或,双目运算符只要有一位为1,即返回1
  • ~:按位非,单目运算符,将操作数的二进制数的每个位取反,即1变0,0变1
  • ^:按位异或,双目运算符,当两位相同则返回0,不同返回1
  • <<:左移运算符,单目运算符,移n位,相当于乘以2n
  • >>:右移运算符,单目运算符,移n位,相当于除以2n
  • >>>:无符号右移,单目运算符
        int a = 8;
        int c = a<<2;
        System.out.println(a); //8,左移和右移对变量本身不改变
        System.out.println(c); //32,相当于乘以2的2次方

比较运算符

  比较运算符用于判断两个变量或常亮的大小,比较结果是一个布尔值(true或false),Java中的比较运算符:

  • >:大于
  • >=:大于等于
  • <:小于
  • <=:小于等于
  • ==:等于
  • !=:不等于

逻辑运算符

  逻辑运算符用于操作两个布尔值的变量或常量,结果是布尔值,逻辑运算符主要有6种:

  • &&:与,双目运算符,两个操作数都是true时,才为true,否则为false
  • &不短路与,当操作数是布尔值时。作用与&&相同,但不会短路
  • ||:或,双目运算符,只要操作数中有一个是true,则返回true
  • |不短路或,当操作数是布尔值时。作用与||相同,但不会短路
  • !:非,单目操作数,取反
  • ^:异或,双目操作数,当两个操作数不同时返回true,否则返回false

三目运算符

  Java中只有一个三目运算符: ? :  。格式如下:

  result = (expression) ? result1 : result2;

  当表达式expression的结果为true时,返回result1,否则返回result2。

        int a = 5;
        int b = 3;
        int c = a > b ? a:b;
        System.out.println(c); // 5,若a>b为true,返回a,否则返回b

 

posted @ 2016-11-28 22:49  简单点的名字  阅读(223)  评论(0编辑  收藏  举报