• JavaSE入门---认识运算符


    计算机的最基本的用途之一就是执行数学运算,运算过程中就会用到运算符,那什么是运算符呢? 即:对操作数进行操作的符号,不同运算符操作的含义不同

    算术运算符

    1.基本四则运算符

    		// + - * / %
            int a = 20;
            int b = 10;
            System.out.println(a+b);  //30
            System.out.println(a-b);  //10
            System.out.println(a*b);  //200
            System.out.println(a/b);  //2
            System.out.println(a%b);  //0  %相当与数学中求除法的余数
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    注:

    1. 都是二元运算符,使用时必须有左右俩个操作数。
    2. int / int 的结果还是int 并且会向下取整。
    3. 做除法和取模时,右操作数不能为0
    4. % 不仅可以对整型取模,也可以对double类型取模,但是没有意义,一般都是对整型取模。
    5. 俩侧操作数类型不一致时,会类型提升(向类型大的提升)

    2.增量运算符

    // += -= /= %=
            int a = 20;
            a += 10;        // a = a + 10;  30
    
            int b = 20;
            b -= 10;        // b = b - 10;  10
    
            int c = 20;
            c /=10;        // c = c / 10;  2
    
            int d = 20;
            d %=10;        // d = d % 10;  0
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    注: 只有变量才可以使用该类运算符,常量不能使用。

    3.自增/自减运算符

    // ++ --
            int a = 1;
            a++;        // a = a + 1;
            
            int b = 1;
            ++b;        // b = b + 1;
            
            int c = 1;
            c--;        // c = c - 1;
            
            int d = 1;
            --d;        // d = d - 1;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    注:

    1. 如果单独使用 前置++ 和 后置++ 没有任何区别
    2. 如果混合使用 前置++ 先+1 再使用变量+1之后的值,后置++ 先使用变量原来的值 表达式结束后再给变量+1
    3. 只能给变量使用,常量不能使用。

    关系运算符

    		// == != < > <= >=  其运算结果只能是true或者false
            int a = 20;
            int b = 10;
            System.out.println(a==b);    // false
            System.out.println(a!=b);    // true
            System.out.println(a<b);     // false
            System.out.println(a>b);     // true
            System.out.println(a<=b);    // false
            System.out.println(a>=b);    // true
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    注: 需要多次判断时不能连着写。比如: 不能写 3 < a < 4 因写为 a > 3 && a < 4

    逻辑运算符

    1.逻辑与 &&(相当于且)
    语法规则: 表达式1 && 表达式2 左右表达式必须是boolean类型的结果
    含义:只有俩个表达式都为真,结果才为真。只要有一个表达式为假,结果就是假。
    在这里插入图片描述

    		int a = 1;
            int b = 2;
            System.out.println(a==1 && b==2);  // true
            System.out.println(a>1 && b<5);    // false
            System.out.println(a>1 && b>5);    // false
    
    • 1
    • 2
    • 3
    • 4
    • 5

    2.逻辑或 || (相当于或)
    语法规则:表达式1 || 表达式2 左右表达式必须是boolean类型的结果。
    含义:只有俩个表达式都为假,结果才为假。只要有一个表达式为真,结果就是真。
    在这里插入图片描述

    		int a = 1;
            int b = 2;
            System.out.println(a>1 || b>5);    // false
            System.out.println(a==1 || b>5);   // true
            System.out.println(a>1 || b<5);    // true
    
    • 1
    • 2
    • 3
    • 4
    • 5

    3.逻辑非 !
    语法规则: !表达式
    含义:真变假,假变真
    在这里插入图片描述

    		int a = 1;
            int b = 2;
            System.out.println(!(a==1));  // false
            System.out.println(!(a>1));   // true
    
    • 1
    • 2
    • 3
    • 4

    注:

    1. 对于&&,如果左侧表达式值为false,则表达式结果一定为false,不需要计算右侧表达式。
    2. 对于||, 如果左侧表达式值为true, 则表达式结果一定为true, 不需要计算右侧表达式。

    位运算符

    Java中数据存储的最小单位是字节,而数据操作的最小单位是比特位。每个比特位存储一位二进制数字。
    位操作表示按二进制位运算。

    1.按位与 &
    含义:如果两个二进制位都是1,则结果为1,否则结果为0;

    		int a = 10;
            int b = 20;
            System.out.println(a & b);
    
    • 1
    • 2
    • 3

    在这里插入图片描述
    2.按位或 |
    含义:如果两个二进制位都是0,则结果为0,否则结果为1;

    		int a = 10;
            int b = 20;
            System.out.println(a | b);
    
    • 1
    • 2
    • 3

    在这里插入图片描述
    3.按位取反 ~
    含义:如果该位为0,则转为1.如果该位为1,则转为0;

    		int a = 10;
            int b = 20;
            System.out.println(~a);
    
    • 1
    • 2
    • 3

    在这里插入图片描述
    4.按位异或 ^
    含义:如果两个数字的二进制位相同,则结果为0,否则结果为1;

    		int a = 10;
            int b = 20;
            System.out.println(a^b);
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    移位运算符

    按照二进制比特位来运算的;

    1.<< 左移一位
    含义:左移一位,右侧补0
    :向左移时丢弃的是符号位,数字可能由整数变为负数,由负数变为整数

     		int a = 1;
            System.out.println(a<<1);
    
    • 1
    • 2

    在这里插入图片描述
    2.>> 右移一位
    含义:右移一位,左侧补符号位

    		int a = 1;
            int b = -1;
            System.out.println(a>>1);
            System.out.println(b>>1);
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述
    3.>>> 无符号右移
    含义:右移一位,左侧补0

    		int a = 1;
            System.out.println(a>>>1);
    
    • 1
    • 2

    在这里插入图片描述

    注:

    1. 左移一位相当于原数字*2 左移N位相当于原数字*2^N
    2. 右移一位相当于原数字/2 右移N位相当于原数字/2^N
    3. 计算机中移位运算效率高于乘除运算

    条件运算符

    语法规则:表达式1 ? 表达式2 :表达式3
    含义:如果表达式1结果为真,则最终结果为表达式2.如果表达式1结果为假,则最终结果为表达式3.

            int a = 10;
            int b = 20;
            int max = (a > b) ? a : b;     // max = 20
    
    
    • 1
    • 2
    • 3
    • 4

    注: 条件运算符只有一个,也是Java中唯一的一个三目运算符。

    运算符的优先级

    在一条表达式中,各个运算符可以混合使用,但是运算符的优先级不同。有些情况下会带来很大的麻烦。表达式优先级层级较多、数量也不少,因此,我特地重新归纳整理了一次巧记版本。点击此处查看:巧记运算符优先级
    在这里插入图片描述

    注: 我们平时在写代码时如果遇到运算符优先级不确定的情况时,在有可能由歧义的代码中加括号即可。

  • 相关阅读:
    JavaScript之数组高阶API—reduce()
    云南毕业旅游攻略
    java计算机毕业设计springboot+vue线上教学辅助系统
    代码随想录笔记_动态规划_392判断子序列
    利用已存在的conda环境
    黑客(网络安全)技术自学30天
    java毕业设计房车营地在线管理系统Mybatis+系统+数据库+调试部署
    基于分布鲁棒优化的电-气-热综合能源系统日前经经济调度
    scipy.optimize.linprog()函数--求解线性规划问题
    【pytorch】torch.nn 与 torch.nn.functional 的区别
  • 原文地址:https://blog.csdn.net/weixin_62976968/article/details/133863725