1.运算符

image-20220206145454342.png

1.1算术运算符

算术运算符包括: +(两个数字求和)、 -(两个数字相减)、 *(两个数字乘积)、 /(两个数字相除)、 %(两个数字取模或者求余)、 ++(单目运算符,对数字自加 1)、 —(单目运算符,对数字自减 1)。

  1. int a=10;
  2. int b=20;
  3. System.out.println(a+b);//30
  4. System.out.println(a-b);//-10
  5. System.out.println(a*b);//200
  6. System.out.println(a/b);//0
  7. /*
  8. int 类型和 int 类型
  9. * 做运算,最终的结果还是 int 类型
  10. */
  11. System.out.println(a%b);//10
  1. int i=10
  2. i++;
  3. System.out.println(i);//11
  4. ++i;
  5. System.out.println(i);//12
  6. /*
  7. 根据以上的程序可以得出结论: ++可以出现在变量前,也可以出现在变量后,
  8. 无论是变量前还是变量后,只要执行完 ++,最终的结果都会让变量自加 1。
  9. */
  10. int m=i++;
  11. System.out.println(m);//12
  12. /*规定的,当++运算符出现在变量后,会先做赋值运算,再自加 1,所以最后 m = 12
  13. */
  14. int m=++i;
  15. System.out.println(m);//14
  16. /*java 语法中又有这样的规定, ++出现在变量前,会先进行自加 1的操作,然后再做赋值运算,所以 m= 11
  17. */
  1. 两个 int 类型数据进行数学运算之后的结果一定是 int 类型;
  2. ++或—可以出现在变量前也可以是变量后;
  3. ++无论出现在变量前还是变量后,只要执行了++,那么变量必然会自加 1;
  4. ++出现在变量后会先进行赋值运算,再自加 1;
  5. ++出现在变量前会先自加 1,再进行赋值运算。

    1.2关系运算符

    关系运算符主要是完成数据和数据之间的比较。返回布尔值

  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);//true
  7. System.out.println(a==b);//false
  8. System.out.println(a!=b);//true

1.3逻辑运算符

逻辑运算符主要包括逻辑与(&),逻辑或(|),逻辑异或(^),短路与(&&),短路
或(||)。所有逻辑运算符的特点是操作数都是布尔类型,并且最终的运算结果也是布尔类型

image.png

1.4赋值运算符

赋值运算符包括基本赋值运输符=,和拓展赋值运算符(+=、-=、/=、%=)与二进制相关的运算符

  1. int a=12;
  2. System.out.println("a="+a);
  3. a+=1;
  4. System.out.println("a="+a);//13 a+=1等于a=a+1
  5. a-=1;
  6. System.out.println("a="+a);//12 a-=1等于a=a-1
  7. a*=2;
  8. System.out.println("a="+a);//24 a*=2等于a=a*2
  9. a/=2;
  10. System.out.println("a="+a);//12 a/=2等于a=a/2
  11. a%=2;
  12. System.out.println("a="+a);//0 a%=1等于a=a%1

拓展:a+=1与a=a+1真的相等吗?

  1. byte a=12;
  2. a=a+1;//编译器会报错 原因类型转换异常
  1. byte a=12;
  2. a+=1;//编译通过

根据以上代码测试得出,对于扩展类的赋值运算符在运算的过程中不会改变运算的结果类型。


1.5条件运算符

条件运算符属于三目运算符,它的语法结构是:布尔表达式?表达式 1:表达式 2。它的运行原理是这样的,先判断布尔表达式的结果是 true 还是 false,如果是 true,则选择表达式 1 的结果作为整个表达式的结果,反之则选择表达式 2 的结果作为整个表达式的结果。

  1. int a=true?1:0;//a=1;

1.6字符串连接运算符

作用一是对数字进行求和运算,作用二就是字符串连接运算 。

  1. int a = 10;
  2. int b = 20;
  3. System.out.println(a + " + " + b + " = " + a + b);//10+20=1020
  4. System.out.println(a + " + " + b + " = " + (a + b));//10+20=30