• 四、运算符


    一、算术运算符

    + 求和
    - 相减
    * 乘积
    / 商
    % 求余【取模】
    ++ 自加1
    – 自减1
    注:运算符有优先级,不确定时可以加括号。

    int k=1;
    k++;
    System.out.println(k);
    int m=1;
    int n=m++;
    ++m;
    System.out.println(m);
    System.out.println(n);
    int p=1;
    int q=++p;
    System.out.println(q);
    int t=1;
    System.out.println(t++);
    System.out.println(t);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    在这里插入图片描述

    故:
    ①++运算符可以出现在变量前,也可以出现在变量后,无论是变量前还是变量后,只要++运算结束,该变量中的值一定会自加1。
    ②++出现在变量后,先做赋值运算,再对变量种保存的值进行自加1.
    ③++出现在变量前,先进行自加1,再进行赋值操作。
    ④println底层其实相当于有一层赋值。

    二、关系运算符

    > 大于
    >= 大于等于
    < 小于
    <= 小于等于
    == 等于
    != 不等于
    注:=是赋值运算符,==是关系运算符
    关系运算符的运算结果一定是布尔类型:true/false
    关系运算符比较的是变量中所保存的值之间的关系

    三、逻辑运算符

    & 逻辑与
    | 逻辑或
    ! 逻辑非
    ^ 逻辑异或 (两边的算子不一样结果为真)
    && 短路与
    || 短路或

    1.逻辑运算符两边的算子必须是布尔类型,并且逻辑运算符最终的运算结果也为布尔类型。
    2.短路与和逻辑与最终的运算结果是相同的,只不过短路与存在短路现象。
    3.短路或和逻辑或最终的运算结果是相同的,只不过短路或存在短路现象。
    4.什么时候发生短路现象?
    第一个表达式执行结果为true,会发生短路或。
    第二个表达式执行结果为false,会发生短路与。

    //逻辑与和短路与
    int x=10;
    int z=10;
    int y=8;
    System.out.println(x<y & ++x<y);
    System.out.println(x);
    System.out.println((z<y) && (++z<y));
    //x
    System.out.println(z);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    在这里插入图片描述
    在实际开发中短路与使用比逻辑与更多。但在某些特殊情况中,要求运算符两边的算子全部执行,需使用逻辑与。

    四、赋值类运算符

    1.基本的赋值运算符 =
    2.扩展的赋值运算符
    +=
    -=
    *=
    /=
    %=

    1.赋值类运算符优先级:先执行等号右边的表达式,将执行结果赋值给左边的变量。
    2.扩展类的赋值运算符不改变运算结果类型,假设最初这个变量的类型是byte类型,最终该变量的数据类型还是byte类型。

    byte b=10;
    //b=b+5;编译错误:b+5的类型是int类型,b的类型是byte
    b=(byte)(b+5);
    //byte b=15;编译通过
    System.out.println(b);
    
    byte c=10;
    c+=5;
    System.out.println(c);
    
    byte z=0;
    z+=128;//进行了强制类型转换,损失精度
    System.out.println(z);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    在这里插入图片描述

    五、字符串连接运算符

    +运算符在java语言中有两个作用:
    加法运算,求和
    字符串的连接运算

    1.当“+”运算符两边的数据都是数字时,一定是进行加法运算。
    2.当“+”运算符两边的数据只要有一个数据是字符串,一定会进行字符串连接运算,并且连接运算之后的字符串结果还是一个字符串类型。
    3.在一个表达式中可以出现多个加号,在没有添加小括号的前提下,遵循自左向右的顺序依次计算。

    int a=10;
    int b=20;
    System.out.println("10+20="+a+b);
    System.out.println("10+20="+(a+b));
    System.out.println("a+20="+(a+b));
    System.out.println(a+"+"+b+"="+(a+b));
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在这里插入图片描述

    //定义一个String类型的变量(引用数据类型)
    String user="jiyu";
    System.out.println("take care of yourself,"+user+",and be well");
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    六、三元运算符

    语法规则:布尔表达式?表达式1:表达式2
    当布尔表达式的结果为true时,选择表达式1的运算结果作为整个表达式的结果,当布尔表达式的结果为false时,表达式2的结果为整个表达式的结果。

    //10;编译错误,不是一个完整的语句
    //'男';编译错误,不是一个完整的语句
    
    //boolean sex=false;
    //sex?'男':'女';编译错误,不是一个完整的语句
    
    boolean sex=false;
    char c=sex?'男':'女';
    System.out.println(c);
    
    //char c1=sex?"男":'女';编译错误,类型不兼容
    System.out.println(sex?"男":'女');//编译通过,因为println包容性比较强,大概可以这么理解吧
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    七、位运算符

    & 按位与(AND)
    | 按位或(OR)
    ^ 按位异
    ~ 按位非(NOT)
    >> 右移
    >>> 右移,左边空出的位以0填充
    << 左移

  • 相关阅读:
    程序单实例运行的一种实现
    VS工具集及C++规范
    SW曲面实体导出工程图
    安装虚拟机(VMware)保姆级教程及配置虚拟网络编辑器和安装WindowsServer以及宿主机访问虚拟机和配置服务器环境
    使用NFS作为Glance存储后端
    谷粒商城 高级篇 (十九) --------- 消息队列
    让“作用域和闭包”说人话
    老陈打码老陈打码
    上海亚商投顾:市场继续缩量调整 汽车、光伏板块领涨
    c#快速获取超大文件夹文件名
  • 原文地址:https://blog.csdn.net/qq_46276154/article/details/127501596