• 【Java基础】自增自减、关系、逻辑及三元<运算符


    目录

    一、自增自减运算符

    二、关系运算符

    三、逻辑运算符

    短路逻辑运算符

    四、三元运算符


    一、自增自减运算符

    符号作用说明
    ++自增变量的值加1
    --自减变量的值减1

    注意事项:

    ++和--既可以放在变量的后边,也可以放在变量的前边。

    单独使用的时候,++和--无论放在变量的前边还是后边,结果都是一样的。

    参与操作的时候,如果放在变量的后边先拿变量参与操作,后拿变量做++或者--

    参与操作的时候,如果放在变量的前边先拿变量做++或者--,后拿变量参与操作

    最常用的用法:单独使用

    1. int i = 10;
    2. i++; // 单独使用
    3. System.out.println("i:" + i); // i:11
    4. int j = 10;
    5. ++j; // 单独使用
    6. System.out.println("j:" + j); // j:11
    7. int x = 10;
    8. int y = x++; // 赋值运算,++在后边,所以是使用x原来的值赋值给y,x本身自增1
    9. System.out.println("x:" + x + ", y:" + y); // x:11,y:10
    10. int m = 10;
    11. int n = ++m; // 赋值运算,++在前边,所以是使用m自增后的值赋值给n,m本身自增1
    12. System.out.println("m:" + m + ", m:" + m); // m:11,m:11

    练习:

    1. int x = 10;
    2. int y = x++ + x++ + x++;
    3. System.out.println(y); // y的值是多少?
    4. /*
    5. 解析,三个表达式都是++在后,所以每次使用的都是自增前的值,但程序自左至右执行,所以第一次自增时,使用的是
    6. 10进行计算,但第二次自增时,x的值已经自增到11了,所以第二次使用的是11,然后再次自增。。。
    7. 所以整个式子应该是:int y = 10 + 11 + 12;
    8. 输出结果为33。
    9. */
    10. 注意:在实际开发时,不建议这样写代码。

    二、关系运算符

    关系运算符有6种关系,分别为小于、小于等于、大于、等于、大于等于、不等于。

    符号说明
    ==a==b,判断a和b的值是否相等,成立为true,不成立为false
    !=a!=b,判断a和b的值是否不相等,成立为true,不成立为false
    >a>b,判断a是否大于b,成立true,不成立为false
    >=a>=b,判断a是否大于等于b,成立true,不成立为false
    <a
    <=a<=b,判断a是否小于等于b,成立为true,不成立为false

    注意事项:

    关系运算符的结果都是boolean类型,要么是true,要么是false。

    "=="是判断是否相等的关系,"="是赋值

    1. int a = 10;
    2. int b = 20;
    3. System.out.println(a == b); // false
    4. System.out.println(a != b); // true
    5. System.out.println(a > b); // false
    6. System.out.println(a >= b); // false
    7. System.out.println(a < b); // true
    8. System.out.println(a <= b); // true
    9. // 关系运算的结果肯定是boolean类型,所以也可以将运算结果赋值给boolean类型的变量
    10. boolean flag = a > b;
    11. System.out.println(flag); // 输出false

    三、逻辑运算符

    逻辑运算符把各个运算的关系表达式连接起来组成一个复杂的逻辑表达式,以判断程序中的表达式是否成立,判断的结果是true或false

    符号作用说明
    &逻辑与a&b,a和b都是true,结果为true,否则为false
    |逻辑或a|b,a都是false,结果为false,否则为true
    ^逻辑异或a^b,a和b结果不同为true,相同为false
    !逻辑非!a,结果和a的结果正好相反
    1. //定义变量
    2. int i = 10;
    3. int j = 20;
    4. int k = 30;
    5. //& “与”,并且的关系,只要表达式中有一个值为false,结果即为false
    6. System.out.println((i > j) & (i > k)); //false & false,输出false
    7. System.out.println((i < j) & (i > k)); //true & false,输出false
    8. System.out.println((i > j) & (i < k)); //false & true,输出false
    9. System.out.println((i < j) & (i < k)); //true & true,输出true
    10. System.out.println("--------");
    11. //| “或”,或者的关系,只要表达式中有一个值为true,结果即为true
    12. System.out.println((i > j) | (i > k)); //false | false,输出false
    13. System.out.println((i < j) | (i > k)); //true | false,输出true
    14. System.out.println((i > j) | (i < k)); //false | true,输出true
    15. System.out.println((i < j) | (i < k)); //true | true,输出true
    16. System.out.println("--------");
    17. //^ “异或”,相同为false,不同为true
    18. System.out.println((i > j) ^ (i > k)); //false ^ false,输出false
    19. System.out.println((i < j) ^ (i > k)); //true ^ false,输出true
    20. System.out.println((i > j) ^ (i < k)); //false ^ true,输出true
    21. System.out.println((i < j) ^ (i < k)); //true ^ true,输出false
    22. System.out.println("--------");
    23. //! “非”,取反
    24. System.out.println((i > j)); //false
    25. System.out.println(!(i > j)); //!false,,输出true

    短路逻辑运算符

    符号作用说明
    &&短路与作用和&相同,但是有短路效果
    ||短路或作用和|相同,但是有短路效果

    逻辑与&,无论左边真假,右边都要执行。

    短路与&&,如果左边为真,右边执行;如果左边为假,右边不执行。

    逻辑或|,无论左边真假,右边都要执行。

    短路或||,如果左边为假,右边执行;如果左边为真,右边不执行

    1. int x = 3;
    2. int y = 4;
    3. System.out.println((x++ > 4) & (y++ > 5)); // 两个表达都会运算
    4. System.out.println(x); // 4
    5. System.out.println(y); // 5
    6. System.out.println((x++ > 4) && (y++ > 5)); // 左边已经可以确定结果为false,右边不参与运算
    7. System.out.println(x); // 4
    8. System.out.println(y); // 4

    四、三元运算符

    三元运算符语法格式:

    关系表达式 ? 表达式1 : 表达式2;

    问号前面的位置是判断的条件,判断结果为boolean型,为true时调用表达式1,为false时调用表达式2,其逻辑为:如果条件成立或者满足则执行表达式1,否则执行表达式2.

    举例:

    1. int a = 10;
    2. int b = 20;
    3. int c = a > b ? a : b; // 判断 a>b 是否为真,如果为真取a的值,如果为假,取b的值

    案例:

    需求:一座寺庙里住着三个和尚,已知他们的身高分别为155cm,183cm,175cm请用程序获取三个和尚的最高身高

    1. public class OperatorTest02 {
    2. public static void main(String[] args) {
    3. //1:定义三个变量用于保存和尚的身高,单位为cm,这里仅仅体现数值即可。
    4. int height1 = 155;
    5. int height2 = 183;
    6. int height3 = 175;
    7. //2:用三元运算符获取前两个和尚的较高身高值,并用临时身高变量保存起来。
    8. int tempHeight = height1 > height2 ? height1 : height2;
    9. //3:用三元运算符获取临时身高值和第三个和尚身高较高值,并用最大身高变量保存。
    10. int maxHeight = tempHeight > height3 ? tempHeight : height3;
    11. //4:输出结果
    12. System.out.println("maxHeight:" + maxHeight);
    13. }
    14. }
  • 相关阅读:
    【机器学习基础】机器学习的模型评估(评估方法及性能度量原理及主要公式)
    Google Earth Engine APP——15行代码搞定一个inspector高程监测APP
    轻松实现H5页面下拉刷新:滑动触发、高度提示与数据刷新全攻略
    vi编辑器:-vi的使用方法的记录
    SparkSQL---简介及RDD V.S DataFrame V.S Dataset编程模型详解
    [vs2017]_[初级]_[常用快捷键*持续更新]
    OLED透明屏的制造过程是怎样的?
    Mysql 我随手造200W条数据,给你们讲讲分页优化。
    Python 图形化界面基础篇:使用框架( Frame )组织界面
    一站式BI解决方案:从数据采集到处理分析,全面满足决策支持需求
  • 原文地址:https://blog.csdn.net/m0_61961937/article/details/126299419