diff --git "a/50 \345\274\240\350\265\267\347\221\236/20221207 \346\225\260\347\273\204.md" "b/50 \345\274\240\350\265\267\347\221\236/20221207 \346\225\260\347\273\204.md" new file mode 100644 index 0000000000000000000000000000000000000000..0de0b4e3ff53cad55b8d241a9bd265b0612b8e1c --- /dev/null +++ "b/50 \345\274\240\350\265\267\347\221\236/20221207 \346\225\260\347\273\204.md" @@ -0,0 +1,101 @@ +## 数组变量访问方式: + +数组变量访问方式 +格式:数组名 + +数组内部保存的数据的访问方式 +格式:数组名[索引]zz + +## 数组 : + +数组(array):是一种用于存储多个相同数据类型的存储模型(可以理解为容器) + +一次性声明大量的用于存储数据的变量 +要存储的数据通常都是同类型数据,例如:考试成绩 +int[] scores = {100,100,100,100,100,100,100…}; + +## 数组定义格式: + +格式1:数据类型[] 变量名; +范例: int[] arr; +定义了一个int类型的数组,数组名是arr + +格式2:数据类型 变量名[]; +范例: int arr[]; +定义了一个int类型的变量,变量名是arr数组 + +推荐使用:格式1 int[] arr; + +## 数组初始化概述: + +Java中的数组必须先初始化,然后才能使用 +所谓初始化:就是为数组中的数组元素分配内存空间,并为每个数组元素赋值 +注意:数组中的每一个数据,我们称之为数组中的元素 + +## 数组初始化方式: + +静态初始化:初始化时指定每个数组元素的初始值,由系统决定数组长度 +格式:数据类型[] 变量名 = new 数据类型[]{数据1,数据2,数据3,…}; +范例:int[] arr = new int[]{1,2,3}; + +简化格式:数据类型[] 变量名 = {数据1,数据2,数据3,…}; +范例:int[] arr = {1,2,3}; + +## 数组元素访问: + +数组变量访问方式 +格式:数组名 + +数组内部保存的数据的访问方式 +格式:数组名[索引] + +索引是数组中数据的编号方式 +作用:索引用于访问数组中的数据使用,数组名[索引]等同于变量名,是一种特殊的变量名 +特征①:索引从0开始 +特征②:索引是连续的 +特征③:索引逐一增加,每次加1 + +## 遍历 + +什么是数组遍历 +获取数组中的每一个元素,我们可以把获取到的元素输出在控制台 + +获取数组长度(元素个数) +格式:数组名.length +范例:arr.length + +数组遍历通用格式: + +```java +int[] arr = {...}; for (int i = 0; i < arr.length; i++) { arr[i]; //对元素arr[i]进行操作 +``` + +注意:数组遍历指的是把数组中的元素取出来,取出来之后可以(打印,求和,判断…) + +## 作业 + +定义一个可以存储5个元素的int数组,数据来自于键盘录入,最后遍历数组,把元素输出在控制台 + +分析: +① 数组长度可知,元素未知,采用动态初始化 +② 键盘录入,使用Scanner实现 + +```java +import java.util.Scanner; +public class D12 { + public static void main(String[] args) { + int[] n = new int[5]; + for (int i = 0; i < 5; i++) { + Scanner num = new Scanner(System.in); + System.out.println("元素" + i); + n[i] = num.nextInt(); + } + System.out.println("你输入的元素分别为:"); + for (int j = 0; j < 5; j++) { + System.out.print(n[j] + " "); + } + } +} +``` + + diff --git "a/50 \345\274\240\350\265\267\347\221\236/20221211 \346\225\260\347\273\204.md" "b/50 \345\274\240\350\265\267\347\221\236/20221211 \346\225\260\347\273\204.md" new file mode 100644 index 0000000000000000000000000000000000000000..657b8cc07602ccab75f5a7b89fcc6c70e8ec8287 --- /dev/null +++ "b/50 \345\274\240\350\265\267\347\221\236/20221211 \346\225\260\347\273\204.md" @@ -0,0 +1,177 @@ +## 复习 + +public class Demo1Array { + +/* + +数组静态初始化 : 初始化时指定每个数组元素的初始值,由系统决定数组长度 + +完整格式: + +数据类型[] 数组名 = new 数据类型[]{数据1,数据2,数据3...}; + +简化格式: + +数据类型[] 数组名 = {数据1,数据2,数据3...}; + +*/ + +public static void main(String[] args) { + +// 数据类型[] 数组名 = new 数据类型[]{数据1,数据2,数据3...}; + +int[] arr = new int[]{11,22,33}; + +System.out.println(arr[0]); + +System.out.println(arr[1]); + +System.out.println(arr[2]); + +// 数据类型[] 数组名 = {数据1,数据2,数据3...}; + +int[] arr2 = {44,55,66}; + +System.out.println(arr2); + +System.out.println(arr2[0]); + +System.out.println(arr2[1]); + +System.out.println(arr2[2]); + +} + +} + +} + +## 数组基本查找【应用】 + +需求: + +已知一个数组 arr = {19, 28, 37, 46, 50}; 键盘录入一个数据,查找该数据在数组中的索引,并在 + +控 + +制台输出找到的索引值。 + +思路: + +1.定义一个数组,用静态初始化完成数组元素的初始化 + +2.键盘录入要查找的数据,用一个变量接收 + +3.定义一个索引变量,初始值为-1 + +4.遍历数组,获取到数组中的每一个元素 + +5.拿键盘录入的数据和数组中的每一个元素进行比较,如果值相同,就把该值对应的索引赋值给 + +索引变量,并结束循环 + +6.输出索引变量 + +```java +public static void main(String[] args) { +// 1.定义一个数组,用静态初始化完成数组元素的初始化 +int[] arr = {19, 28, 37, 46, 50}; +// 2.键盘录入要查找的数据,用一个变量接收 +Scanner sc = new Scanner(System.in); +System.out.println("请输入您要查找的元素:"); +int num = sc.nextInt(); +// 3.定义一个索引变量,初始值为-1 +// 假设要查找的数据, 在数组中就是不存在的 +int index = -1; +// 4.遍历数组,获取到数组中的每一个元素 +for (int i = 0; i < arr.length; i++) { +// 5.拿键盘录入的数据和数组中的每一个元素进行比较,如果值相同,就把该值 +对应的索引赋值给索引变量,并结束循环 +if(num == arr[i]){ +// 如果值相同,就把该值对应的索引赋值给索引变量,并结束循环 +index = i; +break; +} +} +// 6.输出索引变量 +System.out.println(index); +} +} +``` + +## 作业 + +评委打分【应用】 + +需求:在编程竞赛中,有6个评委为参赛的选手打分,分数为0-100的整数分。 + +选手的最后得分为:去掉一个最高分和一个最低分后 的4个评委平均值 (不考虑小数部 + +分)。 + +思路: + +1.定义一个数组,用动态初始化完成数组元素的初始化,长度为6 + +2.键盘录入评委分数 + +3.由于是6个评委打分,所以,接收评委分数的操作,用循环 + +4.求出数组最大值 + +5.求出数组最小值 + +6.求出数组总和 + +7.按照计算规则进行计算得到平均分 + +8.输出平均分 + +```java +public static void main(String[] args) { +// 1.定义一个数组,用动态初始化完成数组元素的初始化,长度为6 +int[] arr = new int[6]; +// 2.键盘录入评委分数 +Scanner sc = new Scanner(System.in); +// 3.由于是6个评委打分,所以,接收评委分数的操作,用循环 +for (int i = 0; i < arr.length; i++) { +System.out.println("请输入第" + (i+1) + "个评委的打分:"); +int score = sc.nextInt(); +if(score >= 0 && score <= 100){ +// 合法的分值 +arr[i] = score; +}else{ +// 非法的分值 +System.out.println("您的打分输入有误, 请检查是否是0-100之间 +的"); +i--; +} +} +// 4.求出数组最大值 +int max = arr[0]; +for (int i = 1; i < arr.length; i++) { +if(max < arr[i]){ +max = arr[i]; +} +} +// 5.求出数组最小值 +int min = arr[0]; +for (int i = 1; i < arr.length; i++) { +if(min > arr[i]){ +min = arr[i]; +} +} +// 6.求出数组总和 +int sum = 0; +for (int i = 0; i < arr.length; i++) { +sum += arr[i]; +} +// 7.按照计算规则进行计算得到平均分 +int avg = (sum - max - min ) / 4; +// 8.输出平均分 +System.out.println(avg); +} +} +``` + +