diff --git "a/40 \346\226\207\346\231\272\345\213\207/20221209 \345\255\246\344\271\240\346\225\260\347\273\204.md" "b/40 \346\226\207\346\231\272\345\213\207/20221209 \345\255\246\344\271\240\346\225\260\347\273\204.md" new file mode 100644 index 0000000000000000000000000000000000000000..7aae12a7a55b70ba0554546df403b1097ec092ff --- /dev/null +++ "b/40 \346\226\207\346\231\272\345\213\207/20221209 \345\255\246\344\271\240\346\225\260\347\273\204.md" @@ -0,0 +1,161 @@ +# 笔记 + +### 数组遍历 + +###### 数组遍历:就是将数组中的每个元素分别获取出来,就是遍历。遍历也是数组操作中的基石。 + +### 能将每个元素都获取一次 + +#### !!! 仅限于数组元素少的时候 !!! + +``` +public class a2biji { + public static void main(String[] args) { + int[] arr = {1,2,3,4,5}; + System.out.println(arr[0]); + System.out.println(arr[1]); + System.out.println(arr[2]); + System.out.println(arr[3]); + System.out.println(arr[4]); + } +} +``` + +### + +### 数组元素多的情况下 + +``` +public class a2biji { + public static void main(String[] args) { + int[] arr = {11,22,33,44,55}; +// 通用的遍历格式 + for (int x =0;x= 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); + } + } + ``` + + + +# 作业 + +闽大举行选美比赛,男生参赛,10个女生当评委,定义一个数组,存放评分,用随机数模拟打分的过程,用程序算出选手的最后得分【去掉一个最高分,再去掉一个最低分,用剩下的分数求平均值】, + +``` +import java.util.Random; +import java.util.Scanner; + +public class A1 { + public static void main(String[] args) { + Scanner sc =new Scanner(System.in); +// 定义一个数组,长度为10 + int[] arr =new int[10]; +// 评委分数范围为0~100 + 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("您的打分有误!"); + i--; + } + } +// 求最大值 + int max=arr[0]; + for (int i =1;iarr[i]); + } +// 求总和 + int sum =0; + for (int i=0;i3?2.1*b:3*b); + break; + case 2: + System.out.println(b>3?4*b:2.4*b); + break; + default: + System.out.println(b>3?5*b:2.7*b); + break; + } + } +} +``` + +# 2 + +```java +import java.util.Scanner; + +public class lianxi2 { + public static void main(String[] args) { + Scanner sc = new Scanner(System.in); + int s = 0; + System.out.println("请输入年份"); + int nf= sc.nextInt(); + System.out.println("请输入月份"); + int yf = sc.nextInt(); + System.out.println("请输入天数"); + int ts = sc.nextInt(); + // 1 3 5 7 8 10 12 + // 4 6 9 11 + // 2 + switch (yf){ + case 12: + s += 30; + case 11: + s += 31; + case 10: + s += 30; + case 9: + s += 31; + case 8: + s += 31; + case 7: + s += 30; + case 6: + s += 31; + case 5: + s += 30; + case 4: + s += 31; + case 3: + if (nf % 4 == 0 && nf % 100 !=0 || nf %400 == 0 ){ + s += 29; + }else { + s += 28; + } + case 2: + s += 31; + case 1: + s += ts; + } + System.out.println("输入的年份是"+nf+"年,"+yf+"月,"+ts+"日过了"+s+"天"); + } +} + +``` + +# 3 + +```java +import java.util.Scanner; + +public class lianxi3 { + public static void main(String[] args) { + Scanner sc = new Scanner(System.in); + System.out.println("请输入一个字符"); + char zf = sc.next().charAt(0); + if (zf>=65 & zf<=90 | zf>=97 & zf<=122){ + System.out.println(zf+"是字母"); + if (zf>=97 && 122>=zf){ + System.out.println(zf+"是小写字母"); + }else if (zf>=65 && 90>=zf){ + System.out.println(zf+"是大写字母"); + } + + switch (zf){ + case 'a': + case 'o': + case 'e': + case 'i': + case 'u': + case 'v': + case 'A': + case 'O': + case 'E': + case 'I': + case 'U': + case 'V': + System.out.println(zf+"是韵母"); + break; + default: + System.out.println(zf+"是声母"); + } + }else { + System.out.println("你输入的字符不是字母"); + } + + + } +} + +``` + diff --git "a/40 \346\226\207\346\231\272\345\213\207/2022126 \345\255\246\344\271\240for\345\276\252\347\216\257\343\200\201while\345\276\252\347\216\257\344\273\245\345\217\212do while\345\276\252\347\216\257\347\232\204\344\275\277\347\224\250.md" "b/40 \346\226\207\346\231\272\345\213\207/2022126 \345\255\246\344\271\240for\345\276\252\347\216\257\343\200\201while\345\276\252\347\216\257\344\273\245\345\217\212do while\345\276\252\347\216\257\347\232\204\344\275\277\347\224\250.md" new file mode 100644 index 0000000000000000000000000000000000000000..2b943365c93871fd1e4a2190ac3f7aec3b9e4f18 --- /dev/null +++ "b/40 \346\226\207\346\231\272\345\213\207/2022126 \345\255\246\344\271\240for\345\276\252\347\216\257\343\200\201while\345\276\252\347\216\257\344\273\245\345\217\212do while\345\276\252\347\216\257\347\232\204\344\275\277\347\224\250.md" @@ -0,0 +1,233 @@ +## 1. for 循环 + +循环: 循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环 体语句,当反复 执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循 环,否则循环将一直执行下去,形 成死循环。 + +```java +for (初始化语句;条件判断语句;条件控制语句) { + 循环体语句; +} +``` + +格式解释: + +初始化语句: 用于表示循环开启时的起始状态,简单说就是循环开始的时候什么样 + +条件判断语句:用于表示循环反复执行的条件,简单说就是判断循环是否能一直执行下去 + +循环体语句: 用于表示循环反复执行的内容,简单说就是循环反复执行的事情 + +条件控制语句:用于表示循环执行中每次变化的内容,简单说就是控制循环是否能执行下去 + +### 1. for循环的案例 + +输出数据1-5和5-1 + +```java +public class ForTest01 { + public static void main(String[] args) { + //需求:输出数据1-5 + for(int i=1; i<=5; i++) { + System.out.println(i); + } + System.out.println("--------"); + //需求:输出数据5-1 + for(int i=5; i>=1; i--) { + System.out.println(i); + } + } +} + +``` + +### 1.1 for循环的案例 求1-100的数据和以及偶数和 + +```java +public class ForTest03 { + public static void main(String[] args) { + //求和的最终结果必须保存起来,需要定义一个变量,用于保存求和的结果,初始值为0 + int sum = 0; + //对1-100的数据求和与1-5的数据求和几乎完全一样,仅仅是结束条件不同 + for(int i=1; i<=100; i++) { + //对1-100的偶数求和,需要对求和操作添加限制条件,判断是否是偶数 + if(i%2 == 0) { + sum += i; + } + } + //当循环执行完毕时,将最终数据打印出来 + System.out.println("1-100之间的偶数和是:" + sum); + } +} +``` + +### 1.2 for循环的案例-水仙花数 + +```java +public class Demo6For { +/* +需求:在控制台输出所有的“水仙花数”,要求每行打印2个 +System.out.print (打印内容); 打印后不换行 +System.out.println(打印内容); 打印后换行 +分析: +1. 定义变量count,用于保存“打印过”的数量,初始值为0 +2. 在判定和打印水仙花数的过程中,拼接空格, 但不换行,并在打印后让count变量 ++1,记录打印过的数量 + 3. 在每一次count变量+1后,判断是否到达了2的倍数,是的话,换行。 + */ + public static void main(String[] args){ + // 1. 定义变量count,用于保存“打印过”的数量,初始值为0 + int count = 0; + for(int i = 100; i <= 999; i++){ + int ge = i % 10; + int shi = i / 10 % 10; + int bai = i / 10 / 10 % 10; + if( (ge*ge*ge + shi*shi*shi + bai*bai*bai) == i){ + // 2. 在判定和打印水仙花数的过程中,拼接空格, 但不换行,并在打印后让 + //count变量+1,记录打印过的数量 + System.out.print(i + " "); + count++; + // 3. 在每一次count变量+1后,判断是否到达了2的倍数,是的话,换行 + if(count % 2 == 0){ + System.out.println(); + } + } + } + } +} +``` + +## 2 while循环 + +while 循环的格式 + +```java +初始化语句; +while (条件判断语句) { + 循环体语句; + 条件控制语句; +} +``` + +while循环执行流程: + +①执行初始化语句 + +②执行条件判断语句,看其结果是true还是false + +​ 如果是false,循环结束 + +​ 如果是true,继续执行 + +③执行循环体语句 + +④执行条件控制语句 + + ⑤回到②继续 + +### 2.1 while循环案例-珠穆朗玛峰 + +题目需求:世界最高山峰是珠穆朗玛峰(8844.43米=8844430毫米),假如我有一张足够大的纸,它的厚 度是0.1毫米。请问,我折叠多少次,可以折成珠穆朗玛峰的高度? + +```java +public class WhileTest { + public static void main(String[] args) { + //定义一个计数器,初始值为0 + int count = 0; + //定义纸张厚度 + double paper = 0.1; + //定义珠穆朗玛峰的高度 + int zf = 8844430; + //因为要反复折叠,所以要使用循环,但是不知道折叠多少次,这种情况下更适合使用while +//循环 + //折叠的过程中当纸张厚度大于珠峰就停止了,因此继续执行的要求是纸张厚度小于珠峰高度 + while(paper <= zf) { + //循环的执行过程中每次纸张折叠,纸张的厚度要加倍 + paper *= 2; + //在循环中执行累加,对应折叠了多少次 + count++; + } + //打印计数器的值 + System.out.println("需要折叠:" + count + "次"); + } +} +``` + +## 3 do while循环语句 + +格式是: + +```java +初始化语句; +do { + 循环体语句; + 条件控制语句; +}while(条件判断语句); +``` + +执行流程: + +① 执行初始化语句 + +② 执行循环体语句 + +③ 执行条件控制语句 + +④ 执行条件判断语句,看其结果是true还是false + +如果是false,循环结束 + +如果是true,继续执行 + +⑤ 回到②继续 + +示例代码: + +```java +public class DoWhileDemo { + public static void main(String[] args) { + //需求:在控制台输出5次"HelloWorld" + //for循环实现 + for(int i=1; i<=5; i++) { + System.out.println("HelloWorld"); + } + System.out.println("--------"); + //do...while循环实现 + int j = 1; + do { + System.out.println("HelloWorld"); + j++; + }while(j<=5); + } +} +``` + +## 4 三种循环的区别 + +三种循环的区别 + + for循环和while循环先判断条件是否成立,然后决定是否执行循环体(先判断后执行) + +do...while循环先执行一次循环体,然后判断条件是否成立,是否继续执行循环体(先执行后 判断) + +for循环和while的区别 + +条件控制语句所控制的自增变量,因为归属for循环的语法结构中,在for循环结束后,就不能再次被访问到了 + + 条件控制语句所控制的自增变量,对于while循环来说不归属其语法结构中,在while循环结束 后,该变量还可以继续使用 + +死循环(无限循环)的三种格式 + +```java +// for循环的死循环格式 +for(;;){ + +} +// while循环的死循环格式 +while(true){ + +} +// do while循环的死循环格式 +do{ + +}while(true); +``` + diff --git "a/40 \346\226\207\346\231\272\345\213\207/day03 switch&\345\276\252\347\216\257\350\257\255\345\217\245.pdf" "b/40 \346\226\207\346\231\272\345\213\207/day03 switch&\345\276\252\347\216\257\350\257\255\345\217\245.pdf" new file mode 100644 index 0000000000000000000000000000000000000000..74771353cd4b49e4776dc1782619de902a677765 Binary files /dev/null and "b/40 \346\226\207\346\231\272\345\213\207/day03 switch&\345\276\252\347\216\257\350\257\255\345\217\245.pdf" differ diff --git "a/40 \346\226\207\346\231\272\345\213\207/day10Git.pdf" "b/40 \346\226\207\346\231\272\345\213\207/day10Git.pdf" new file mode 100644 index 0000000000000000000000000000000000000000..8eb5ad91ed4bfc84ef6f8b5b6869e8f4571b953a Binary files /dev/null and "b/40 \346\226\207\346\231\272\345\213\207/day10Git.pdf" differ