韩顺平零基础学JAVA60-80集学习笔记

本文详细介绍了JAVA中的各种运算符,包括算术运算符(如除法、取模)、赋值运算符、关系运算符、逻辑运算符(与、或、非)、位运算符以及三元运算符。还讨论了运算符的优先级和使用规则,以及如何将它们应用到实际编程中,例如条件判断和表达式操作。
摘要由CSDN通过智能技术生成

JAVA20231122

061第三章本章小结

运算符介绍

运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等

  1. 算术运算符
  2. 赋值运算符
  3. 关系运算符(比较运算符)
  4. 逻辑运算符
  5. 位运算符[需要二进制基础]
  6. 三元运算符

062063064算数运算符

  • 介绍

    算术运算符是对数值类型的变量进行运算的,在JAVA程序中使用的非常多

  • 常用算数运算符

    请添加图片描述

  • 实例演示

  • 请添加图片描述

    System.out.println(10 / 4); //从数学来看是 2.5, java 中 2
    System.out.println(10.0 / 4); //java 是 2.5
    // 注释快捷键 ctrl + /, 再次输入 ctrl + / 取消注释
    double d = 10 / 4;//java 中 10 / 4 = 2, 2=>2.0
    System.out.println(d);// 是 2.0
    

    JAVA中取模(取余)的本质:

    • 在 % 的本质 看一个公式!!! a % b = a - a / b * b

    自增、自减的本质(单独使用、作为表达式使用):

    • 单独使用

      i++和++i均为自增,均等价于i = i + 1

    • 作为表达式使用

      /*
      作为表达式使用
      前++:++i 先自增后赋值
      后++:i++先赋值后自增
      */
      int j = 8;
      //int k = ++j; //等价 j=j+1;k=j;
      int k = j++; // 等价 k =j;j=j+1;
      System.out.println("k=" + k + "j=" + j);//8 9
      
  • 经典面试题
    请添加图片描述

  • 065066067题

068069关系运算符(比较运算符)

  • 介绍

    1. 关系运算符的结果都是boolean型,也就是要么是true,要么是false
    2. 关系表达式经常用在if结构的条件中或在循环结构的条件中
  • 常用关系运算符

    请添加图片描述

  • 实例演示

    //演示关系运算符的使用
    public class RelationalOperator {
    //编写一个 main 方法
    public static void main(String[] args) {
    	int a = 9; 
    	int b = 8;
    	System.out.println(a > b); //T
    	System.out.println(a >= b); //T
    	System.out.println(a <= b); //F
    	System.out.println(a < b);//F
    	System.out.println(a == b); //F
    	System.out.println(a != b); //T
    	boolean flag = a > b; //T
    	System.out.println("flag=" + flag);
    	}
    }
    
  • 细节说明

    1. 关系运算符的结果都是boolean型,也就是要么是true,要么是false
    2. 关系运算符组成的表达式,我们称为关系表达式 比如:a>b
    3. 比较运算符"==“不能误写成”="

07071072073逻辑运算符

  • 介绍
    用于连接多个条件(多个关系表达式),最终的结果也是一个boolean值

  • 常用逻辑运算符

    常见的逻辑运算符包括:&、|、&&、||、!(取反)、^(异或)
    说明逻辑运算规则:

    1. a&b:&叫逻辑与:规则:当a和b同时为true,则结果为true,否则为false
    2. a&&b:&&叫短路与:规则:当a和b同时为true,则结果为true,否则为false
    3. a|b:|叫逻辑或:规则:当a和b,有一个为true,则结果为true,否则为false
    4. a||b:||叫短路或:规则:当a和b,有一个为true,则结果为true,否则为false
    5. !a:叫取反,或者非运算:规则:当a为true,则结果为false,当a为false,则结果为true
    6. a^b:叫逻辑异或,当a和b不同时,则结果为true,否则为false
  • 逻辑&和短路&&的区别

    1. &&短路与:如果第一个条件为 false,则第二个条件不会判断,最终结果为 false,效率高
    2. & 逻辑与:不管第一个条件是否为 false,第二个条件都要判断,效率低
    3. 开发中, 我们使用的基本是使用短路与&&, 效率高
  • 逻辑|和短路||的区别

    1. ||短路或:如果第一个条件为 true,则第二个条件不会判断,最终结果为 true,效率高
    2. | 逻辑或:不管第一个条件是否为 true,第二个条件都要判断,效率低
    3. 开发中,我们基本使用 ||
  • 取反

    名称语法特点
    !非(取反)!条件如果条件本身成立,结果为false,否则为true
  • 逻辑异或
    ^b: 叫逻辑异或,当 a 和 b 不同时,则结果为 true, 否则为 false

    举例:System.out.println( (4 < 1) ^ (6 > 3) );//true

  • 074题66 65 116 115 50

075076赋值运算符

  • 介绍
    赋值运算符就是将某个运算后的值,赋给指定的变量

  • 分类

    1. 基本赋值运算符 = int a = 10;

    2. 复合赋值运算符
      += ,-= ,*= , /= ,%= 等 , 重点讲解一个 += ,其它的使用是一个道理

      a += b; [等价 a = a + b; ] a -= b; [等价 a = a - b;]

  • 案例演示

    1. 赋值基本案例 [int num1 = 10]

    2. += 的使用案例(其中要注意复合赋值运算符会进行类型转换)

    //演示赋值运算符的使用
    public class AssignOperator {
    //编写一个 main 方法
    public static void main(String[] args) {
    	int n1 = 10;
    	n1 += 4;// n1 = n1 + 4;
    	System.out.println(n1); // 14
    	n1 /= 3;// n1 = n1 / 3;//4
    	System.out.println(n1); // 4
        
        
    	//复合赋值运算符会进行类型转换
    	byte b = 3;
    	b += 2; // 等价 b = (byte)(b + 2);
    	b++; // b = (byte)(b+1);
    	}
    }
    
  • 特点

    1. 运算顺序从右往左 int num = a + b + c;

    2. 赋值运算符的左边 只能是变量,右边 可以是变量、表达式、常量值

      列如:int num1 = 20; int num2 = 78 * 34 - 10; int num3 = a;

    3. 复合赋值运算符等价于下面的效果

      比如:a+=3;等价于 a=a+3; 其他类推

    4. 复合赋值运算符会进行类型转换

    //复合赋值运算符会进行类型转换
    	byte b = 3;
    	b += 2; // 等价 b = (byte)(b + 2);//b = b + 2赋给b的值应该为int类型但是底层会进行类型转换使其为b = (byte)(b + 2)
    	b++; // b = (byte)(b+1);
    

077078079三元运算符

  • 基本语法

    条件表达式 ? 表达式 1: 表达式 2;
    运算规则: 1. 如果条件表达式为 true,运算后的结果是表达式 1;

    ​ 2. 如果条件表达式为 false,运算后的结果是表达式 2;

  • 案例演示

    //三元运算符使用
    public class TernaryOperator {
    //编写一个 main 方法
    public static void main(String[] args) {
    	int a = 10;
    	int b = 99;
    	// 解读
    	// 1. a > b 为 false
    	// 2. 返回 b--, 先返回 b 的值,然后在 b-1
    	// 3. 返回的结果是 99
    	int result = a > b ? a++ : b--;
    	System.out.println("result=" + result);//99
    	System.out.println("a=" + a);//10
    	System.out.println("b=" + b);//98
    	}
    }
    
  • 使用细节

    1. 表达式 1 和表达式 2 要为可以赋给接收变量的类型(或可以自动转换)
    2. 三元运算符可以转成 if–else 语句
    int res = a > b ? a++ : --b;
    if ( a > b) res = a++;
    else res = --b;
    
  • 课堂练习
    案例:实现三个数的最大值

    public class TernaryOperatorExercise {
    //编写一个 main 方法
    public static void main(String[] args){
        //案例:实现三个数的最大值
    	int n1 = 553;
    	int n2 = 33;
    	int n3 = 123;
    	//思路
    	//1. 先得到 n1 和 n2 中最大数 , 保存到 max1
    	//2. 然后再 求出 max1 和 n3 中的最大数,保存到 max2
    	int max1 = n1 > n2 ? n1 : n2;
    	int max2 = max1 > n3 ? max1 : n3;
    	System.out.println("最大数=" + max2);
    	//使用一条语句实现, 推荐使用上面方法
    	//提示: 后面我们可以使用更好方法,比如排序
    	// int max = (n1 > n2 ? n1 : n2) > n3 ?
    	// (n1 > n2 ? n1 : n2) : n3;
    	// System.out.println("最大数=" + max);
    	}
    }
    

080运算符的优先级

  1. 运算符有不同的优先级,所谓优先级就是表达式运算中的运算顺序。如右表,上一行运算符总优先于下一行。

  2. 只有单目运算符、赋值运算符是从右向左运算的。

  3. 一览表, 不要背,使用多了,就熟悉了

请添加图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值