运算符

作者: 小疏林er | 来源:发表于2020-07-19 08:44 被阅读0次

    算术运算符:

    1. +:加号有两种使用方式
      (1) 两边是数值类型,则进行加和;
      (2) 有一边是字符串类型则进行字符串拼接,整体变成字符串类型。
    2. /:除法,左操作数除以右操作数,结果取整数,小数舍弃
    3. %:取余,左操作数除以右操作数的余数,结果取余数。
      5/3=1;-5%3=-2;-5%-3=-2;5%-3=2;5%3=2;
    4. ++:自增1,--类似
      a++:先取值运算再自增;
      ++a:先自增再取值运算;
      (考)
    int a=1;
    a=a++;
    System.out.println(a);
    //1
    int j=0; 
    for(int i=0;i<100;i++){ 
     j=j++;
    }
    System.out.println(j);
    //0 ,取 j 的值准备为 j 赋值,但由于++运算符优先级高于赋值运算符,
    //于是先自增1后,再将第一步取出来的0赋给j,所以 j 一直等于0.
    
    1. 其他:-、*。

    关系运算符(得到布尔值)

    1. ==:检查如果两个操作数的值是否相等,如果相等则条件为真。注意和赋值运算符"="区分。
    2. !=:检查如果两个操作数的值是否相等,如果值不相等则条件为真。
    3. 其他:<、>、<=、>=。

    逻辑运算符

    1. &&:(一假则假)
      逻辑与:当且仅当两个操作数都为真,条件才为真。
      短路于:A&&B,当AB均为真时结果才为真,当A为假后结果必定为假,这是就不会再判断B了。
    2. ||:(一真则真)
      逻辑或:如果任何两个操作数任何一个为真,条件为真。
      短位或:A||B,当AB有一为真时结果才为真,当A为真后结果必定为真,这是就不会再判断B了。
    3. !:用来反转操作数的逻辑状态。如果条件为true,则逻辑非运算符将得到false。
      (考)
    int a=1,b=1;
    System.out.println(b);
    System.out.println(a>1||--b>1);
    //0,false
    
    //一真则真
    int a=1,b=1;
    System.out.println(b);
    System.out.println(a==1||--b>1);
    //1,true
    
    //一假则假
    int a=1,b=1;
    System.out.println(b);
    System.out.println(a>1&&--b>1);
    //1,false
    int a = 0x9af700; //1001 1010 1111 0111 0000 0000 00
    a <<= 2;
    //0x26bdc00
    

    位运算符

    1. &:按位与,按照对应位相与,只有1&1才得1。
    2. |:按位或,按照对应位相或,只有0|0才得0。
    3. ~:按位取反,翻转操作数的每一位,即0变成1,1变成0。
    4. Λ:异或运算,不同则为1(0^1==1),一个数连续异或另一个数两次,等于啥也没发生。

    条件(三元)运算符

    1. 基本使用
    public class HelloWorld {
      public static void main(String []args) {
          int s =99;
          System.out.println(s<60?"不及格":(s<80?"及格":(s<90?"良":"优秀")));
       }
    }
    
    1. 嵌套使用
    public void test5(int a) {
          char grade =(a>=90?'A':(a>=60?'B':'C'));
          System.out.println(grade);
    }
    

    运算符优先级

    从上到下优先级依次降低

    类别 操作符 关联性
    后缀 () [] . (点操作符) 左到右
    一元 expr++ expr-- 从左到右
    一元 ++expr --expr + - ~ ! 从右到左
    乘性 * /% 左到右
    加性 + - 左到右
    移位 >> >>> << 左到右
    关系 > >= < <= 左到右
    相等 == != 左到右
    按位与 左到右
    按位异或 ^ 左到右
    按位或 | 左到右
    逻辑与 && 左到右
    逻辑或 || 左到右
    条件 ?: 从右到左
    赋值 = += -= *= /= %= =>>= <<= &= ^= |= 从右到左
    逗号 左到右

    相关文章

      网友评论

          本文标题:运算符

          本文链接:https://www.haomeiwen.com/subject/kxqlkktx.html