• Java摆烂基础学习二~运算符


    活动地址:CSDN21天学习挑战赛

    一个人静静坐在电脑面前写代码的感觉,那是什么感觉?那是武林高手闭关修炼的感觉。

    运算符

    符号作用说明
    算数运算符
    + - * /加减乘除与“÷”相同,注意:在Java中两个整数相除结果还是整数:10/3=3
    %取余获取的是两个数据做除法的余数:10%3=1
    自增自减运算符
    ++ –自增 自减 ±1运算符++、–。对当前变量值+1、-1
    赋值运算符
    += -= *= /= %=取加减乘除余后赋值类似于:a+=b 等价于 a = (a的数据类型)(a+b); 将a + b的值给a
    关系运算符
    == != > >= < <=关系运算符 类似于:a==b,判断a和b的值是否相等,成立为true,不成立为false
    逻辑运算符
    &逻辑与必须都是true,结果才是true; 只要有一个是false,结果一定是false(无论左边是 false还是 true,右边都要执行)
    逻辑或只要有一个为true、结果就是true(无论左边是 false还是 true,右边都要执行)
    !逻辑非你真我假、你假我真。 !true=false 、 !false= true
    ^逻辑异或如果两个条件都是false或者都是true则结果是false。两个条件不同结果是true
    三元运算符
    条件表达式 ? 值1 : 值2;关系表达式的值运算符首先计算关系表达式的值,如果值为true,返回值1,如果为false,返回值2

    运算符优先级
    在这里插入图片描述

    1.运算符有不同的优先级,所谓优先级就是表达式运算中的运算孙女婿.如右下表,上一行运算符总优先于下一行.
    2.只有单目运算符.赋值运算符是从右向左运算的.

    其实在实际的开发中,不需要去记忆运算符的优先级别,也不要刻意的使用运算符的优先级别,对于不清楚优先级的地方使用小括号去进行替代,示例代码:
    int m = 12;
    int n = m << 1 + 2;
    int n = m << (1 + 2); //这样更直观
    这样书写代码,更方便编写代码,也便于代码的阅读和维护。

    注意:
    1.+号可以做连接符
    2.自增、自减运算符:如果单独使用放前后是没有区别的。
    ⚫ 非单独使用:在变量进行变量自增/自减,再使用变量。
    ⚫ 非单独使用:在变量 ,先使用变量,进行变量自增/自减
    3.在做相等判断是,千万不要把 == 误写成 =
    4.逻辑异或“^” :相同是false、不同是true
    短路与&&: 一个为false、结果是false。前一个为false,后一个条件不执行了

    123123%10=3       获取个数位 
    123/10%10=2    十数位
    123/10/10%10=1 百数位
    
    int c = 10;
    int d = 5;
    int rs3 = c++ + ++c - --d - ++d + 1 + c--;
    
    System.out.println(rs3); // 26
    System.out.println(c); // 11
    System.out.println(d); // 5
    // 1.c++ 的时候                             c++ = 10                     c=11 d=5
    // 2.c++ + ++c 的时候                       10 + 12=22                   c=12 d=5
    // 3.c++ + ++c - --d 的时候                 10 + 12 - 4=18               c=12 d=4
    // 4.c++ + ++c - --d - ++d  的时候          10 + 12 - 4 -5=13            c=12 d=5
    // 5.c++ + ++c - --d - ++d + 1 + c--的时候  10 + 12 - 4 - 5 + 1 + 12=26  c=11 d=5
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
  • 相关阅读:
    STL序列式容器二 ----- vector详解
    安装rdkit报错:解决CondaHTTPError: HTTP 000 CONNECTION FAILED for url问题
    【香菇带你学Linux】Linux环境下gcc编译安装【建议收藏】
    Gartner 2024年十大战略技术趋势,谈谈持续威胁暴露管理(CTEM)
    Unity之Android项目的打包
    面向对象分析:如何建立动态模型?状态图(单个对象建模),状态是对影响对象行为的属性值的一种抽象,它规定了对象对( 输入事件 )的响应方式,
    MSSQL RAISERROR
    嘉立创使用技巧
    Unity中的协程
    docker底层实现
  • 原文地址:https://blog.csdn.net/qq_40453972/article/details/126117749