1 昨日复习

QQ截图20211116165448.png
QQ截图20211116183150.png

2 运算符

2.1 算术运算符

QQ截图20211116184719.png
前++:先自增1,后运算
后++:先运算,后自增1
自增1不会改变本身变量的数据类型
前—:先自减1,后运算
后—:先运算,后自减1
自减1不会改变本身变量的数据类型

2.2 赋值运算符

符号:=
当“=”两侧数据类型不一致时,可以使用自动类型转换或使用强制类型转换原则进行处理。
支持连续赋值。
扩展赋值运算符: +=, -=, *=, /=, %=

  1. int i1 = 10;
  2. int j1 = 10;
  3. int i2,j2;
  4. i2 = j2 = 10;
  5. int i3=10 , j3 = 20;
  6. short s1 = 10;
  7. s1 = s1 + 2;//编译失败,因为2是int,s1加2也是int
  8. s1+=2;//不会改变变量数据类型(推荐这种写法)

2.3 比较运算符

QQ截图20211117224138.png
比较运算符的结果都是boolean型,也就是要么是true,要么是false。
比较运算符“==”不能误写成“=” 。
< > >= <=只能使用在数值类型的数据之间
==和!= 还可以用于其他引用类型变量之间

2.4 逻辑运算符

&—逻辑与
| —逻辑或
!—逻辑非
&& —短路与
|| —短路或
^ —逻辑异或

QQ截图20211117224731.png
逻辑运算符用于连接布尔型表达式
“&”和“&&”的区别:
单&时,左边无论真假,右边都进行运算;
双&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。
“|”和“||”的区别同理,||表示:当左边为真,右边不参与运算。
异或( ^ )与或( | )的不同之处是:当左右都为true时,结果为false。理解:异或,追求的是“异”!
开发中推荐使用短路&& 短路||

  1. boolean x=true;
  2. boolean y=false;
  3. short z=42;
  4. //if(y == true)
  5. if((z++==42)&&(y=true))z++;
  6. if((x=false) || (++z==45)) z++;
  7. System. out.println(“z=”+z);
  8. //z=46

2.5 位运算符(了解)

QQ截图20211117231714.png
逻辑运算符和位运算符区别:是否与数字连接
位运算是直接对整数的二进制进行的运算
21<<2=21*2^2;21<<3=21*2^3
结论:
1、位运算符操作的都是整型的数据
2、>>右移时,如果是正数,左边全添加0;如果是负数,左边全添加1。
3、>>>无符号右移,无论正负数,左边全拿0补。
4、<<如果是负数,最左边的1不变
QQ截图20211120195420.png

2.6 三元运算符

QQ截图20211120203913.png
表达式1和表达式2要求是一致的
( m > n ) ? 2 : 1.0; 是对的,因为可以统一为double类型。
三元运算符可以嵌套
凡是可以使用三元运算符的都能改写为if-else,反之不成立,优先三元运算符
运算符优先级 加()

3 程序流程控制

流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块。
其流程控制方式采用结构化程序设计中规定的三种基本流程结构,即:
顺序结构
分支结构
循环结构

3.1 顺序结构

QQ截图20211120225420.png
QQ截图20211120225431.png

  1. 第一种
  2. if(){
  3. }
  4. 第二种
  5. if(){
  6. } else{
  7. }
  8. 第三中
  9. if(){
  10. }else if(){
  11. }else if(){
  12. }
  13. .......
  14. else{
  15. }