diff --git "a/31 \346\235\216\346\254\243/20221205 if\345\222\214switch\347\232\204\345\255\246\344\274\232\344\270\216\344\275\277\347\224\250.md" "b/31 \346\235\216\346\254\243/20221205 if\345\222\214switch\347\232\204\345\255\246\344\274\232\344\270\216\344\275\277\347\224\250.md"
new file mode 100644
index 0000000000000000000000000000000000000000..325c89d7f3a34cb11f71e3f12de2e1607c32b529
--- /dev/null
+++ "b/31 \346\235\216\346\254\243/20221205 if\345\222\214switch\347\232\204\345\255\246\344\274\232\344\270\216\344\275\277\347\224\250.md"
@@ -0,0 +1,306 @@
+## 流程控制语句
+
+在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的。所以,我们必须清楚每条语句的执行流程。而且,很多时候要通过控制语句的执行顺序来实现我们想要的功能。
+
+#### 分类
+
+顺序结构
+
+分支结构(if, switch)
+
+循环结构(for, while, do…while)
+
+#### 顺序结构执行流程图:
+
+顺序结构是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行的。
+
+
+
+#### 分支结构之if语句
+
+##### 格式:
+
+```java
+if (关系表达式) {
+ 语句体;
+}
+```
+
+
+
+##### 执行流程:
+
+①首先计算关系表达式的值
+
+②如果关系表达式的值为true就执行语句体
+
+③如果关系表达式的值为false就不执行语句体
+
+④继续执行后面的语句内容
+
+
+
+##### 格式2:
+
+```java
+if (关系表达式) {
+ 语句体1;
+} else {
+ 语句体2;
+}
+```
+
+
+
+##### 流程
+
+①首先计算关系表达式的值
+
+②如果关系表达式的值为true就执行语句体1
+
+③如果关系表达式的值为false就执行语句体2
+
+④继续执行后面的语句内容
+
+
+
+##### 格式3
+
+```java
+if (关系表达式1) {
+ 语句体1;
+} else if (关系表达式2) {
+ 语句体2;
+}
+…
+else {
+ 语句体n+1;
+}
+
+
+```
+
+①首先计算关系表达式1的值
+
+②如果值为true就执行语句体1;如果值为false就计算关系表达式2的值
+
+③如果值为true就执行语句体2;如果值为false就计算关系表达式3的值
+
+④…
+
+⑤如果没有任何关系表达式为true,就执行语句体n+1。
+
+
+
+
+
+## switch语句
+
+#### 格式
+
+s
+
+```java
+witch (表达式) {
+ case 1:
+ 语句体1;
+ break;
+ case 2:
+ 语句体2;
+ break; ...
+ default:
+ 语句体n+1;
+ break;
+ }
+```
+
+##### 流程:
+
+首先计算出表达式的值
+
+其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到 break就会结 束。
+
+最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束 掉。
+
+#### switch语句case穿透
+
+概述 : 如果switch语句中,case省略了break语句, 就会开始case穿透
+
+## 作业
+
+```java
+import java.util.Scanner;
+public class task {
+ public static void main(String[] args) {
+ Scanner sc = new Scanner(System.in);
+ System.out.println("请输入乘坐的车辆");
+ String car = sc.next();
+ switch (car){
+ case "夏利" :
+ System.out.println("请输入行车千米数");
+ double km = sc.nextDouble();
+ if (km>3){
+ System.out.println("价格为" + (2.1 * (km - 3) + 3) + "元");
+ } else {
+ System.out.println("价位为3元");
+ }
+ break;
+ case "富康" :
+ System.out.println("请输入行车千米数");
+ double km1 = sc.nextDouble();
+ if (km1>3){
+ System.out.println("价格为" + (2.4 * (km1 - 3) + 3) + "元");
+ } else {
+ System.out.println("价位为4元");
+ }
+ break;
+ case "桑塔纳" :
+ System.out.println("请输入行车千米数");
+ double km2 = sc.nextDouble();
+ if (km2>3){
+ System.out.println("价格为" + (2.7 * (km2 - 3) + 3) + "元");
+ } else {
+ System.out.println("价位为5元");
+ }
+ break;
+ default:
+ System.out.println("输入错误型号");
+ break;
+ }
+
+
+ }
+ }
+```
+
+```java
+import java.util.Scanner;
+
+public class task1 {
+ public static void main(String[] args) {
+ Scanner sc = new Scanner(System.in);
+ System.out.println("请输入年份:");
+ int year = sc.nextInt();
+ System.out.println("请输入月份:");
+ int month = sc.nextInt();
+ System.out.println("请输入第几天:");
+ int day = sc.nextInt();
+ if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
+ System.out.println("请问是"+year+"年的第几天:");
+ switch (month) {
+ case 1:
+ System.out.println(day);
+ break;
+ case 2:
+ System.out.println("第" + (31 + day) + "天");
+ break;
+ case 3:
+ System.out.println("第" + (31 + 29 + day) + "天");
+ break;
+ case 4:
+ System.out.println("第" + (29 + 31 * 2 + day) + "天");
+ break;
+ case 5:
+ System.out.println("第" + (30 + 29 + 31 * 2 + day) + "天");
+ break;
+ case 6:
+ System.out.println("第" + (30 + 29 + 31 * 3 + day) + "天");
+ break;
+ case 7:
+ System.out.println("第" + (30 * 2 + 29 + 31 * 3 + day) + "天");
+ break;
+ case 8:
+ System.out.println("第" + (30 * 2 + 29 + 31 * 4 + day) + "天");
+ break;
+ case 9:
+ System.out.println("第" + (30 * 2 + 29 + 31 * 5 + day) + "天");
+ break;
+ case 10:
+ System.out.println("第" + (30 * 3 + 29 + 31 * 5 + day) + "天");
+ break;
+ case 11:
+ System.out.println("第" + (30 * 3 + 29 + 31 * 6 + day) + "天");
+ break;
+ case 12:
+ System.out.println("第" + (30 * 4 + 29 + 31 * 6 + day) + "天");
+ break;
+ }
+ } else {
+ System.out.println("请问是"+year+"年的第几天:");
+ switch (month) {
+ case 1:
+ System.out.println(day);
+ break;
+ case 2:
+ System.out.println("第" + (31 + day) + "天");
+ break;
+ case 3:
+ System.out.println("第" + (31 + 28 + day) + "天");
+ break;
+ case 4:
+ System.out.println("第" + (28 + 31 * 2 + day) + "天");
+ break;
+ case 5:
+ System.out.println("第" + (30 + 28 + 31 * 2 + day) + "天");
+ break;
+ case 6:
+ System.out.println("第" + (30 + 28 + 31 * 3 + day) + "天");
+ break;
+ case 7:
+ System.out.println("第" + (30 * 2 + 28 + 31 * 3 + day) + "天");
+ break;
+ case 8:
+ System.out.println("第" + (30 * 2 + 28 + 31 * 4 + day) + "天");
+ break;
+ case 9:
+ System.out.println("第" + (30 * 2 + 28 + 31 * 5 + day) + "天");
+ break;
+ case 10:
+ System.out.println("第" + (30 * 3 + 28 + 31 * 5 + day) + "天");
+ break;
+ case 11:
+ System.out.println("第" + (30 * 3 + 28 + 31 * 6 + day) +" 天");
+ break;
+ case 12:
+ System.out.println("第" + (30 * 4 + 28 + 31 * 6 + day) + "天");
+ break;
+
+ }
+ }
+ }
+}
+```
+
+```java
+import java.util.Scanner;
+
+public class task2 {
+ public static void main(String[] args) {
+ Scanner sc = new Scanner(System.in);
+ System.out.println("请输入字母:");
+ char word = sc.next().charAt(0);
+ if (word>='a' && word<='z') {
+ System.out.println("你输出的为小写字母,");
+ switch (word){
+ case 'a':
+ case 'e':
+ case 'i':
+ case 'o':
+ case 'u':
+ case 'v':
+ System.out.println("且为声母");
+ break;
+ default:
+ System.out.println("且为韵母");
+ break;
+ }
+ } else if (word>='A' && word<='Z') {
+ System.out.println("你输出的为大写字母");
+ } else {
+ System.out.println("你输出的字符不是字母");
+ }
+
+ }
+}
+```
+
diff --git "a/31 \346\235\216\346\254\243/20221205 if\345\222\214switch\347\232\204\345\255\246\344\274\232\344\270\216\344\275\277\347\224\250/\345\233\276\347\211\2072.png" "b/31 \346\235\216\346\254\243/20221205 if\345\222\214switch\347\232\204\345\255\246\344\274\232\344\270\216\344\275\277\347\224\250/\345\233\276\347\211\2072.png"
new file mode 100644
index 0000000000000000000000000000000000000000..54a5b64dade4a61fee0e2ff91effa4b5be4def2c
Binary files /dev/null and "b/31 \346\235\216\346\254\243/20221205 if\345\222\214switch\347\232\204\345\255\246\344\274\232\344\270\216\344\275\277\347\224\250/\345\233\276\347\211\2072.png" differ
diff --git "a/31 \346\235\216\346\254\243/20221206 \345\276\252\347\216\257\350\257\255\345\217\245.md" "b/31 \346\235\216\346\254\243/20221206 \345\276\252\347\216\257\350\257\255\345\217\245.md"
new file mode 100644
index 0000000000000000000000000000000000000000..c1afab95339620ca380c431794cb84a9c7a9e1f1
--- /dev/null
+++ "b/31 \346\235\216\346\254\243/20221206 \345\276\252\347\216\257\350\257\255\345\217\245.md"
@@ -0,0 +1,172 @@
+## for循环
+
+循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环 体语句,当反复 执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循 环,否则循环将一直执行下去,形 成死循环。
+
+#### 格式:
+
+```java
+for (初始化语句;条件判断语句;条件控制语句) {
+ 循环体语句;
+}
+```
+
+##### 解释:
+
+###### 初始化语句: 用于表示循环开启时的起始状态,简单说就是循环开始的时候什么样
+
+###### 条件判断语句:用于表示循环反复执行的条件,简单说就是判断循环是否能一直执行下去
+
+###### 循环体语句: 用于表示循环反复执行的内容,简单说就是循环反复执行的事情
+
+###### 条件控制语句:用于表示循环执行中每次变化的内容,简单说就是控制循环是否能执行下去
+
+#### 流程:
+
+①执行初始化语句
+
+②执行条件判断语句,看其结果是true还是false
+
+ 如果是false,循环结束
+
+ 如果是true,继续执行
+
+③执行循环体语句
+
+④执行条件控制语句
+
+⑤回到②继续
+
+```java
+public class test {
+ public static void main(String[] args) {
+ for(int a=1; a<=5; a++) {
+ System.out.println(a);
+ }//1~5
+ System.out.println(" ");
+ for(int b=5; b>=1; b--) {
+ System.out.println(b);
+ }//5~1
+ }
+}
+```
+
+
+
+## while循环
+
+#### 格式:
+
+```java
+初始化语句;
+while (条件判断语句) {
+ 循环体语句;
+ 条件控制语句;
+}
+```
+
+#### 流程:
+
+①执行初始化语句
+
+②执行条件判断语句,看其结果是true还是false
+
+ 如果是false,循环结束
+
+ 如果是true,继续执行
+
+③执行循环体语句
+
+④执行条件控制语句
+
+⑤回到②继续
+
+```java
+public class test1 {
+ public static void main(String[] args) {
+ while(a<=5) {
+ System.out.println("bilibili");
+ a++;
+ }//bilibili*5
+ }
+}
+```
+
+
+
+## do-while循环
+
+#### 格式:
+
+```java
+初始化语句;
+do {
+ 循环体语句;
+ 条件控制语句;
+}while(条件判断语句);
+```
+
+#### 流程:
+
+① 执行初始化语句
+
+② 执行循环体语句
+
+ ③ 执行条件控制语句
+
+④ 执行条件判断语句,看其结果是true还是false
+
+如果是false,循环结束
+
+如果是true,继续执行
+
+⑤ 回到②继续
+
+```java
+public class test2 {
+ public static void main(String[] args) {
+ do {
+ System.out.println("balabala");
+ a++;
+ }while(a<=5);
+ }//balabala*5
+}
+
+```
+
+
+
+## 三种循环的区别
+
+- #### 三种循环的区别
+
+##### for循环和while循环先判断条件是否成立,然后决定是否执行循环体(先判断后执行)
+
+##### do...while循环先执行一次循环体,然后判断条件是否成立,是否继续执行循环体(先执行后判断)
+
+- #### for循环和while的区别
+
+##### 条件控制语句所控制的自增变量,因为归属for循环的语法结构中,在for循环结束后,就不能 再次被访问到了
+
+##### 条件控制语句所控制的自增变量,对于while循环来说不归属其语法结构中,在while循环结束 后,该变量还可以继续使用
+
+## 死循环
+
+#### 格式:
+
+```java
+for(;;){
+
+}
+
+
+while(true){
+
+}
+
+
+do {
+
+} while(true);
+
+```
+
diff --git "a/31 \346\235\216\346\254\243/20221209 Random&\346\225\260\347\273\204.md" "b/31 \346\235\216\346\254\243/20221209 Random&\346\225\260\347\273\204.md"
new file mode 100644
index 0000000000000000000000000000000000000000..f7b189e718ae01b6d8ea036b478231664594c649
--- /dev/null
+++ "b/31 \346\235\216\346\254\243/20221209 Random&\346\225\260\347\273\204.md"
@@ -0,0 +1,196 @@
+## Random
+
+Random类似Scanner,也是Java提供好的API,内部提供了产生随机数的功能
+
+API后续课程详细讲解,现在可以简单理解为Java已经写好的代码
+
+#### 步骤:
+
+```java
+import java.util.Random;
+public class Demo1Random {
+/*
+ Random : 产生随机数
+ 1. 导包 : import java.util.Random;
+ 导包的动作必须出现在类定义的上面
+ 2. 创建对象 : Random r = new Random();
+ 上面这个格式里面,r 是变量名,可以变,其他的都不允许变
+ 3. 获取随机数 : int number = r.nextInt(10); //获取数据的范围:[0,10) 包
+ 括0,不包括10
+ 上面这个格式里面,number是变量名,可以变,数字10可以变。其他的都不
+ 允许变
+ 需求: 产生随机数1-10之间的
+*/
+ public static void main(String[] args){
+// 2. 创建对象
+ Random r = new Random();
+ for(int i = 1; i <= 10; i++){
+// 3. 获取随机数
+ int num = r.nextInt(10) + 1; // 1-10
+ System.out.println(num);
+ }
+ }
+}
+
+```
+
+## 数组
+
+数组就是存储数据长度固定的容器,存储多个数据的数据类型要一致。
+
+#### 第一种格式:
+
+```java
+int[] arr;
+double[] arr;
+char[] arr;
+```
+
+#### 第二种格式:
+
+```java
+int arr[];
+double arr[];
+char arr[];
+```
+
+#### 动态初始化:
+
+只给定数组的长度,由系统给出默认初始化值
+
+在初始化的时候, 需要手动指定数组的长度, 系统会为数组容器分配初始值.
+
+##### 格式:
+
+```java
+//数据类型[] 数组名 = new 数据类型[数组长度];
+int[] arr = new int[3];
+```
+
+等号左边: 等号右边:
+
+ int:数组的数据类型 new:为数组开辟内存空间
+
+ []:代表这是一个数组 int:数组的数据类型
+
+ arr:代表数组的名称 []:代表这是一个数组
+
+ 5:代表数组的长度
+
+```java
+package com.itheima.array;
+
+public class Demo2Array {
+ public static void main(String[] args) {
+ // 数据类型[] 数组名 = new 数据类型[数组的长度];
+ // 通过new关键字创建了一个int类型的数组容器, 该容器可以存储5个int类型的整数, 该容器被arr数组变量所记录
+ int[] arr = new int[5];
+ /* [I@10f87f48
+ @ : 分隔符
+ [ : 当前的空间是一个数组类型
+ I : 当前数组容器中所存储的数据类型
+ 10f87f48 : 十六进制内存地址
+ 0 1 2 3 4 5 6 7 8 9 a b c d e f
+ */
+ System.out.println(arr);
+
+ byte[] bArr = new byte[3];
+ // [B@b4c966a
+ System.out.println(bArr);
+ }
+}
+
+```
+
+#### 数组元素访问
+
+##### 索引:
+
+每一个存储到数组的元素,都会自动的拥有一个编号,从0开始。
+
+这个自动编号称为数组索引(index),可以通过数组的索引访问到数组中的元素。
+
+##### 格式:
+
+```java
+数组名[索引];
+arr[0] = 11;
+```
+
+#### 静态初始化
+
+在创建数组时,直接将元素确定
+
+#### 格式:
+
+```java
+数据类型[] 数组名 = new 数据类型[]{元素1,元素2,...};
+数据类型[] 数组名 = {元素1,元素2,...};
+```
+
+## 作业
+
+#### 猜数字
+
+```java
+import java.util.Random;
+import java.util.Scanner;
+
+public class task3 {
+ public static void main(String[] args) {
+ Scanner sc = new Scanner(System.in);
+ int count = 1;
+ Random any = new Random();
+ int num2 = any.nextInt(50) + 1;
+ for(;;){
+ System.out.println("请输入数字");
+ int num = sc.nextInt();
+ count++;
+ if (num > num2) {
+ System.out.println("猜大了");
+ } else if (num < num2) {
+ System.out.println("猜小了");
+ } else {
+ System.out.println("猜对了");
+ break;
+ }
+ if (count>3){
+ System.out.println("现在你有两个选项,一是重新开始:re二是结束游戏:bye");
+ String num1 = sc.next();
+ switch (num1){
+ case "re":
+ count=0;
+ count++;
+ break;
+ case "bye":
+ System.out.println("感谢您的使用");
+ break;
+ default:
+ System.out.println("输入错误");
+ break;
+ }
+ }
+ }
+ }
+}
+
+```
+
+##### 最大值
+
+```java
+public class task4 {
+ public static void main(String[] args) {
+ int[] num = {112,234,542,98,67};
+ int max = num[0];
+ for(int i = 1; i < num.length; i++){
+ if (num[i]>max){
+ max = num[i];
+ }
+ }
+ System.out.println("最大值为:"+ max);
+ }
+}
+
+```
+
diff --git "a/31 \346\235\216\346\254\243/20221211 \346\225\260\347\273\204\345\220\216\347\273\255.md" "b/31 \346\235\216\346\254\243/20221211 \346\225\260\347\273\204\345\220\216\347\273\255.md"
new file mode 100644
index 0000000000000000000000000000000000000000..46a3c99ac70464164e2bfc8efd5965eec69031ae
--- /dev/null
+++ "b/31 \346\235\216\346\254\243/20221211 \346\225\260\347\273\204\345\220\216\347\273\255.md"
@@ -0,0 +1,58 @@
+# 作业
+
+闽大举行选美比赛,男生参赛,10个女生当评委,定义一个数组,存放评分,用随机数模拟打分的过程,用程序算出选手的最后得分【去掉一个最高分,再去掉一个最低分,用剩下的分数求平均值】
+
+```java
+import java.util.Random;
+
+public class task5 {
+ public static void main(String[] args) {
+ int[] beautyScore = new int[10];
+ int max = beautyScore[0];
+ int min = beautyScore[0];
+ int sun = 0;
+ Random S = new Random();
+ for (int a = 0;a < beautyScore.length; a++){
+ beautyScore[a] = S.nextInt(100)+1;
+ System.out.println("评分:" + beautyScore[a]);
+ sun += beautyScore[a];
+ if (max < beautyScore[a]){
+ max = beautyScore[a];
+ }else if (min > beautyScore[a]){
+ min = beautyScore[a];
+ }
+ }System.out.println("最后得分是:" + (((sun-max-min)*1.0)/10));
+ }
+}
+
+```
+
+## 数组小结
+
+#### 得到数组的长度
+
+为了定位每个元素,程序会给每个元素一个编号,这个编号从0开始,称为索引,注意,索引最大值,只能是长度-1 ===> length-1
+
+```java
+// 数组名.length
+int[] ages = {1,2,3};
+ages.length;
+// 数组长度什么什么用?
+//可以用来遍历数组
+```
+
+#### 静态初始化
+
+```java
+//示例
+int[] ages = {18,19,20};
+```
+
+#### 动态初始化
+
+```java
+//示例
+int[] a = new int[3];
+//int[3]// 表示取num这个数组中索引为3的那个元素的值,因为索引从0开始,所以这里3表示第4个元素
+```
+
diff --git "a/31 \346\235\216\346\254\243/2img/\345\233\276\347\211\2072.png" "b/31 \346\235\216\346\254\243/2img/\345\233\276\347\211\2072.png"
new file mode 100644
index 0000000000000000000000000000000000000000..54a5b64dade4a61fee0e2ff91effa4b5be4def2c
Binary files /dev/null and "b/31 \346\235\216\346\254\243/2img/\345\233\276\347\211\2072.png" differ
diff --git "a/31 \346\235\216\346\254\243/2img/\345\233\276\347\211\2073.png" "b/31 \346\235\216\346\254\243/2img/\345\233\276\347\211\2073.png"
new file mode 100644
index 0000000000000000000000000000000000000000..b17ad14d51deb7103046585e0ab0206177976631
Binary files /dev/null and "b/31 \346\235\216\346\254\243/2img/\345\233\276\347\211\2073.png" differ
diff --git "a/31 \346\235\216\346\254\243/2img/\345\233\276\347\211\2074.png" "b/31 \346\235\216\346\254\243/2img/\345\233\276\347\211\2074.png"
new file mode 100644
index 0000000000000000000000000000000000000000..17494d812df010f09713db004bf7983c95c69c02
Binary files /dev/null and "b/31 \346\235\216\346\254\243/2img/\345\233\276\347\211\2074.png" differ
diff --git "a/31 \346\235\216\346\254\243/2img/\345\233\276\347\211\2075.png" "b/31 \346\235\216\346\254\243/2img/\345\233\276\347\211\2075.png"
new file mode 100644
index 0000000000000000000000000000000000000000..b7835a46e9950ccf8d0429ede987c4cff03b3b02
Binary files /dev/null and "b/31 \346\235\216\346\254\243/2img/\345\233\276\347\211\2075.png" differ