diff --git "a/18 \350\260\242\345\256\270/20221205 switch\350\257\255\345\217\245\345\222\214if.md" "b/18 \350\260\242\345\256\270/20221205 switch\350\257\255\345\217\245\345\222\214if.md" new file mode 100644 index 0000000000000000000000000000000000000000..d1130661b0b0ef72d7f73175d88325bacde2df13 --- /dev/null +++ "b/18 \350\260\242\345\256\270/20221205 switch\350\257\255\345\217\245\345\222\214if.md" @@ -0,0 +1,181 @@ +# switch语句 + +~~~java +switch (表达式) { + + case 1: 语句体1; + + break; + + case 2: + + 语句体2; + + break; + + ... + + default: + + 语句体n+1; + + break; } +~~~ + +if语句格式 +示例: + +~~~java +public class IfDemo { + public static void main(String[] args) { + System.out.println("开始"); + + // 如果年龄大于18岁, 就可以上网吧 + int age = 17; + + if(age >= 18){ + // int a = 10; + System.out.println("可以上网吧"); + } + + System.out.println("结束"); + } +} + + +if语句格式2(理解) + +~~~java +格式: +if (关系表达式) { + 语句体1; +} else { + 语句体2; +} +~~~ + +if语句格式3 + +~~~java +格式: +if (关系表达式1) { + 语句体1; +} else if (关系表达式2) { + 语句体2; +} +… +else { + 语句体n+1; +} +~~~ + +示例: + +​ 定义一个在0~100之间的变量a, 90~100优秀,80~89良好,70~79中等,60~69及格,0~59请努力加油! + +~~~java +public class Demo3If { + public static void main(String[] args){ + int score = 65; + if(score >= 90 && score <= 100){ + System.out.println("优秀"); + }else if (score >= 80 && score <= 89){ + System.out.println("良好"); + }else if (score >= 70 && score <= 79){ + System.out.println("中等"); + }else if (score >= 60 && score <= 69){ + System.out.println("及格"); + }else if (score >= 0 && score <= 59){ + System.out.println("请努力加油"); + }else{ + System.out.println("成绩有误!"); + } + } +} +~~~ + +# 作业 + +```java +import java.util.Scanner; + +public class cls { + public static void main(String[] args) { + int num; + String cx ; + double ff ; + Scanner sc = new Scanner(System.in); + System.out.println("请输入车型:"); + cx = sc .next(); + System.out.println("请输入行车千米数:"); + double lc = sc.nextDouble(); + num = 0; + if(cx.equals("夏利")){ + num=1; + } else + if (cx.equals("富康")) { + num= 2; + } else + if (cx.equals("桑塔纳")) { + num=3; + }else + { + System.out.println("输入错误");return; + } + switch (num){ + case 1:if (lc<=3) ff=3; + else ff = 3+2.1*(lc-3); + System.out.println("乘车费用为:"+ff); + break; + case 2:if (lc<=3) ff=4; + else ff = 3+2.4*(lc-3); + System.out.println("乘车费用为:"+ff); + break; + case 3:if (lc<=3) ff=5; + else ff = 3+2.7*(lc-3); + System.out.println("乘车费用为:"+ff); + break; + default: + System.out.println("请重新输入!"); + } + } +} +``` + +```java +import java.util.Scanner; +public class cls { + public static void main(String[] args) { + int n,y,r,sum = 0; + Scanner sc = new Scanner(System.in); + System.out.println("\n请输入年.月.日:\n"); + n= sc.nextInt(); + y= sc.nextInt(); + r= sc.nextInt(); + switch (y){ + case 1:sum=0;break; + case 2:sum=31;break; + case 3:sum=59;break; + case 4:sum=90;break; + case 5:sum=120;break; + case 6:sum=151;break; + case 7:sum=181;break; + case 8:sum=212;break; + case 9:sum=243;break; + case 10:sum=273;break; + case 11:sum=304;break; + case 12:sum=334;break; + default: + System.out.println("date");break; + } + sum = sum+r; + if( n%4==0 && n%100!=0||n%400==0) + {if (y>=3) + sum++; + else + sum= sum+r; + } + System.out.println("今天是今年的第"+sum); + } +} +``` \ No newline at end of file diff --git "a/18 \350\260\242\345\256\270/20221209 \351\232\217\346\234\272\346\225\260\345\222\214\346\225\260\347\273\204.md" "b/18 \350\260\242\345\256\270/20221209 \351\232\217\346\234\272\346\225\260\345\222\214\346\225\260\347\273\204.md" new file mode 100644 index 0000000000000000000000000000000000000000..642f5461174212d92fe1e587c27ec3e36e3a0ab9 --- /dev/null +++ "b/18 \350\260\242\345\256\270/20221209 \351\232\217\346\234\272\346\225\260\345\222\214\346\225\260\347\273\204.md" @@ -0,0 +1,229 @@ +# Random产生随机数 + +概述: + +Random类似Scanner,也是Java提供好的API,内部提供了产生随机数的功能 API后续课程详细讲解,现在可以简单理解为Java已经写好的代码 + +\1. 导入包 import java.util.Random; + +2. 创建对象 Random r = new Random(); + +3. 产生随机数 int num = r.nextInt(10); 解释: 10代表的是一个范围,如果括号写10,产生的随机数就是0-9,括号写20,参数的随 机数则是0-19 + + ~~~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); + } + } + } + ~~~ + + + + + +### 1.2 数组的定义格式 + +#### 1.2.1 第一种格式 + +​ 数据类型[] 数组名 + +​ 示例: + +```java +int[] arr; +double[] arr; +char[] arr; +``` + +#### 1.2.2 第二种格式 + +​ 数据类型 数组名[] + +​ 示例: + +```java +int arr[]; +double arr[]; +char arr[]; +``` + +#### 1.3.3 动态初始化格式详解 + +- 等号左边: + + - int:数组的数据类型 + + - []:代表这是一个数组 + + - arr:代表数组的名称 + +- 等号右边: + + - new:为数组开辟内存空间 + - int:数组的数据类型 + - []:代表这是一个数组 + - 5:代表数组的长度 + +**代码 :** + +```java +package com.itheima.array; + +public class Demo2Array { + /* + 数组的动态初始化: + 在初始化的时候, 需要手动指定数组的长度, 系统会为数组容器分配初始值. + + 动态初始化格式: + 数据类型[] 数组名 = new 数据类型[数组的长度]; + + 注意: + 打印数组变量的时候, 会打印出数组的内存地址 + + [I@10f87f48 : + + @ : 分隔符 + [ : 当前的空间是一个数组类型 + I : 当前数组容器中所存储的数据类型 + 10f87f48 : 十六进制内存地址 + + 0 1 2 3 4 5 6 7 8 9 a b c d e f + */ + public static void main(String[] args) { + // 数据类型[] 数组名 = new 数据类型[数组的长度]; + // 通过new关键字创建了一个int类型的数组容器, 该容器可以存储5个int类型的整数, 该容器被arr数组变量所记录 + int[] arr = new int[5]; + // [I@10f87f48 + System.out.println(arr); + + byte[] bArr = new byte[3]; + // [B@b4c966a + System.out.println(bArr); + + } +} + +``` + +### 1.13 数组元素求和 + +- 需求:键盘录入5个整数,存储到数组中,并对数组求和 + +- 思路: + 1.创建键盘录入对象,准备键盘录入 + 2.定义一个求和变量,准备记录累加后的结果 + 3.动态初始化一个长度为5的int数组,准备存储键盘录入的数值 + 4.将键盘录入的数值存储到数组中 + 5.遍历数组,取出每一个元素,并求和 + 6.输出总和 + +- 代码实现: + + ```java + package com.itheima.test; + + import java.util.Scanner; + + public class Test3Array { + /* + 需求:键盘录入5个整数,存储到数组中,并对数组求和 + + 思路: + 1.创建键盘录入对象,准备键盘录入 + 2.定义一个求和变量,准备记录累加后的结果 + 3.动态初始化一个长度为5的int数组,准备存储键盘录入的数值 + 4.将键盘录入的数值存储到数组中 + 5.遍历数组,取出每一个元素,并求和 + 6.输出总和 + */ + public static void main(String[] args) { + // 1.创建键盘录入对象,准备键盘录入 + Scanner sc = new Scanner(System.in); + // 2.定义一个求和变量,准备记录累加后的结果 + int sum = 0; + // 3.动态初始化一个长度为5的int数组,准备存储键盘录入的数值 + int[] arr = new int[5]; + // 4.将键盘录入的数值存储到数组中 + for(int i = 0; i < arr.length; i++){ + System.out.println("请输入第" + (i+1) + "个整数:"); + //arr[i] = 10; + arr[i] = sc.nextInt(); + } + + // 5.遍历数组,取出每一个元素,并求和 + for (int i = 0; i < arr.length; i++) { + sum += arr[i]; + } + + // 6.输出总和 + System.out.println("sum:" + sum); + + } + } + + ``` + +# 作业 + +猜数字 + +```java +import java.util.Random; +import java.util.Scanner; + +public class cls { + public static void main(String[] args) { + Random cx = new Random(); + Scanner sc = new Scanner(System.in); + int da = cx.nextInt(100) + 1; + while (true) { + System.out.println("请输入您的数字"); + int ds = sc.nextInt(); + if (ds > da) { + System.out.println("猜大了"); + } else if (ds < da) { + System.out.println("猜小了"); + } else { + System.out.println("恭喜猜中了"); + break; + } + } + System.out.println("感谢使用"); + } +} +``` + +``` +public class cls { + public static void main(String[] args) { + int[] aa = {10, 20, 30, 40, 50}; + int bb = aa[0]; + for (int i = 1; i< aa.length; i++){ + if (aa[i]>bb){ + bb=aa[i]; + } + } + System.out.println("最大数为:"+bb); + } +} +``` \ No newline at end of file diff --git "a/18 \350\260\242\345\256\270/20221212 \346\225\260\347\273\204\345\260\217\347\273\223.md" "b/18 \350\260\242\345\256\270/20221212 \346\225\260\347\273\204\345\260\217\347\273\223.md" new file mode 100644 index 0000000000000000000000000000000000000000..bb2adf1fdae1a82c8a9b800cfc10bd35e8418708 --- /dev/null +++ "b/18 \350\260\242\345\256\270/20221212 \346\225\260\347\273\204\345\260\217\347\273\223.md" @@ -0,0 +1,149 @@ + + + + + + +## 数组的小结 + +1. 数组:一种用来存放多个或一个同一数据类型数据的容器,其实就是一种特殊的变量 + +2. 数组里存放的每一个数据,称为数组的元素。 + +3. 为了定位每个元素,程序会给每个元素一个编号,这个编号从0开始,称为索引,注意,索引最大值,只能是长度-1 ===> length-1 + +4. 如何得到数组的长度(也就是元素的个数): + + ```java + // 数组名.length + int[] ages = {1,2,3}; + ages.length; + // 数组长度什么什么用? + //可以用来遍历数组 + ``` + + + +5. 数组的赋值,也叫初始化 + + 1. 静态初始化 + + 1. 语法: 数据类型[] 数组名 = {元素1,元素2,元素3,……}; + + 2. 当定义一个数组,同时又明确知道每个元素的值的时候,边定义数组边赋值。 + + 3. 示例: + + ```java + // 定义一个整数类型的数组,存放前三名各个的年龄 + int[] ages = {18,19,20}; + ``` + + + + 2. 动态初始化 + + 1. 语法:数据类型[] 数组名 = new 数据类型[数组的长度] + + 2. 当要定义一个数组,但是只知道长度,却不知道每个元素具体的值的时候。用动态初始化法 + + 3. 动态初始化,其实是有默认值的 int[] 0 ; double[] 0.0 String[] null 【null 表示啥也没有!】 + + 4. 示例: + + ```java + // 定义一个长度为3的整数类型的数组,得到 0 0 0 这么一个数组 + int[] a = new int[3]; + ``` + + + +6. 怎么使用数组的元素(也就是取值) + + 1. 语法: 数组名[索引] + + 2. 示例: + + ```java + num[1]// 表示取num这个数组中索引为1的那个元素的值,因为索引从0开始,所以这里1表示第2个元素 + ``` + + + +7. 数组的遍历: + + 1. 将数组每个元素都用到一次 + + 2. 其实就是从索引0到数组长度-1循环一次,取出每个索引对应的值 + + 3. 示例,求数组中每个数的总和 + + ```java + // 普通的标签遍历方法 + int[] num = {1,2,3}; + sum = 0; + for(int i=0;i=0 && num<=100){ + arr[b]=num; + } + } + int max = arr[0]; + for (int b =1; b< arr.length;b++ ){ + if (max< arr[b]){ + max = arr[b]; + } + } + int min = arr[0]; + for (int b = 1; b < arr.length; b++) { + if (min > arr[b]) { + min = arr[b]; + } + } + int sum =0; + for(int b=0;b< arr.length;b++){ + sum+=arr[b]; + } + int c =(sum-max-min)/8; + System.out.println(" 最终平均分是去掉一个最高分和最低分,总分"+c); + } +} + +``` \ No newline at end of file