diff --git "a/10 \346\234\261\345\277\227\351\271\217/2022 11.29 java\347\232\204\345\237\272\347\241\200\350\257\255\346\263\2252.md" "b/10 \346\234\261\345\277\227\351\271\217/2022 11.29 java\347\232\204\345\237\272\347\241\200\350\257\255\346\263\2252.md" new file mode 100644 index 0000000000000000000000000000000000000000..0a833629f233d42991a2063674b817d391532bff --- /dev/null +++ "b/10 \346\234\261\345\277\227\351\271\217/2022 11.29 java\347\232\204\345\237\272\347\241\200\350\257\255\346\263\2252.md" @@ -0,0 +1,117 @@ +#### java基本语法2 + +###### 类型转换 + +在Java中,一些数据类型之间是可以相互转换的。分为两种情况:自动类型转换和强制类型转换。 + +###### 隐式转换(自动转换) + +把一个表示数据范围小的数值或者变量赋值给另一个表示数据范围大的变量。这种转换方式是自动的,直接书写即可。 + +例如: + +```java +double num = 10; // 将int类型的10直接赋值给double类型 +System.out.println(num); // 输出10.0 +``` + +###### 强制转换(理解) + +​ 把一个表示数据范围大的数值或者变量赋值给另一个表示数据范围小的变量。 + +​ 强制类型转换格式:目标数据类型 变量名 = (目标数据类型)值或者变量; + +```java +double num1 = 5.5; +int num2 = (int) num1; // 将double类型的num1强制转换为int类型 +System.out.println(num2); // 输出5(小数位直接舍弃) +``` + +#### 运算符 + +运算符:对常量或者变量进行操作的符号 + +表达式:用运算符把常量或者变量连接起来符合Java语法的式子就可以称为表达式。 + +##### 算术运算符 + +符号 + - * / % + +**注意:** + +1. /和%的区别:两者都做除法, + - / 取结果的商, + + - % 取结果的余数。 + +2. 整数操作只能得到整数,要想得到小数,必须有浮点数参与运算。 + +##### 字符的“+”操作 + +char类型参与算术运算,使用的是计算机底层对应的十进制数值。需要我们记住三个字符对应的数值: + +'a' -- 97 a-z是连续的,所以'b'对应的数值是98,'c'是99,依次递加 + +'A' -- 65 A-Z是连续的,所以'B'对应的数值是66,'C'是67,依次递加 + +'0' -- 48 0-9是连续的,所以'1'对应的数值是49,'2'是50,依次递加 + +#### 作业 + +设计一个程序,用户输入一个四位数的整数后,程序能获取这四位数的个位,十位,百位和千位.并在控制台输出这四个数字; + +```java +import java.util.Scanner; +public class zuoye { + public static void main(String[] args) { + Scanner sc = new Scanner(System.in); + System.out.println("请输入四个数"); + int shu = sc.nextInt(); + int ge = shu % 10; + int shi = shu/10%10; + int bai = shu/100%10; + int qian = shu/1000; + System.out.println("个位"+ge); + System.out.println("十位"+shi); + System.out.println("百位"+bai); + System.out.println("千位"+qian); + } +} +``` + +华氏温度和摄氏温度互相转换,从华氏度变成摄氏度你只要减去32,乘以5再除以9就行了,将摄氏度转成华氏度,直接乘以9,除以5,再加上32即行 + +```java +import java.util.Scanner; +public class v { + public static void main(String[] args) { + Scanner sc = new Scanner(System.in); + System.out.println("华摄氏度为"); + int qb = sc.nextInt(); + int hua = (qb-32)*5/9; + System.out.println("是摄氏度"+hua); + System.out.println("摄氏度为"); + int bus = sc.nextInt(); + int nie = (bus+32)*5/9; + System.out.println("是华摄氏度"+bus); + + } +} +``` + +输入一个年份,判断其是不是闰年. + +```java + +public class ja { + public static void main(String[] args) { + Scanner sc = new Scanner(System.in); + System.out.println("请输入年份"); + int n = sc.nextInt(); + boolean m = n%4==0; + System.out.println("是闰年"+m); + + } +} +``` + diff --git "a/10 \346\234\261\345\277\227\351\271\217/2022 12. 4 JAVA IF\345\222\214swich.md" "b/10 \346\234\261\345\277\227\351\271\217/2022 12. 4 JAVA IF\345\222\214swich.md" new file mode 100644 index 0000000000000000000000000000000000000000..2cf31ec14e6e8a54feffc9124343cece07e4ff9b --- /dev/null +++ "b/10 \346\234\261\345\277\227\351\271\217/2022 12. 4 JAVA IF\345\222\214swich.md" @@ -0,0 +1,218 @@ +``` +import java.util.Scanner; + +public class s { + public static void main(String[] args) { + Scanner sc = new Scanner(System.in); + System.out.println("请输入车辆"); + String che = sc.next(); + System.out.println("请输入千米"); + int A = sc.nextInt(); + switch (che) { + case "夏利": + if (A > 3) { + System.out.println (3+ (A- 3) *2.1 ); + } else System.out.println("三公里价位为3元"); + break; + case "富康": + if (A>3){ + System.out.println(4+(A-3)*2.4); + }else System.out.println("三公里价位为4元"); + break; + case"桑塔纳": + if (A>3){ + System.out.println(5+(A-3)*2.7); + }else System.out.println("三公里价位为5元"); + } + } + } +} +``` + +```java +import java.util.Scanner; + +public class ww { + public static void main(String[] args) { + Scanner sc =new Scanner(System.in); + System.out.println("请输入当前年份例如:(2019)"); + int year = sc.nextInt(); + if (((year % 4 == 0 && year % 100 !=0) || year % 400 == 0)) + { + System.out.println("该年为润年" + "\n" + "闰年1-12月分别为31天,29天,31天,30天,31天,30天,31天,31天,30天,31天,30天,31天"); + System.out.println("请输入你想输入月份:例如(5)"); + int month2 = sc.nextInt(); + System.out.println("请输入现在几号例如:(3)"); + int day = sc.nextInt(); + switch (month2) { + case 1: + System.out.println("现在是" + year + "的第" + (day) + "天"); + break; + case 2: + System.out.println("现在是" + year + "的第" + (31 + day) + "天"); + break; + case 3: + System.out.println("现在是" + year + "的第" + (60 + day) + "天"); + break; + case 4: + System.out.println("现在是" + year + "的第" + (91 + day) + "天"); + break; + case 5: + System.out.println("现在是" + year + "的第" + (121 + day) + "天"); + break; + case 6: + System.out.println("现在是" + year + "的第" + (152 + day) + "天"); + break; + case 7: + System.out.println("现在是" + year + "的第" + (182 + day) + "天"); + break; + case 8: + System.out.println("现在是" + year + "的第" + (213 + day) + "天"); + break; + case 9: + System.out.println("现在是" + year + "的第" + (244 + day) + "天"); + break; + case 10: + System.out.println("现在是" + year + "的第" + (274 + day) + "天"); + break; + case 11: + System.out.println("现在是" + year + "的第" + (305 + day) + "天"); + break; + case 12: + System.out.println("现在是" + year + "的第" + (335 + day) + "天"); + default: + System.out.println("输入无效"); + break; + } + } else { + System.out.println("该年份为平年"+"\n"+"平年1-12月分别为31天,28天,31天,30天,31天,30天,31天,31天,30天,31天,30天,31天,"); + System.out.println("请输入你想输入月份:"); + int month1 = sc.nextInt(); + System.out.println("请输入现在几号例如:(3)"); + int day1 = sc.nextInt(); + switch (month1){ + case 1: + System.out.println("现在是"+year+"的第"+(day1)+"天"); + break; + case 2: + System.out.println("现在是"+year+"的第"+(31+day1)+"天"); + break; + case 3: + System.out.println("现在是"+year+"的第"+(59+day1)+"天"); + break; + case 4: + System.out.println("现在是"+year+"的第"+(90+day1)+"天"); + break; + case 5: + System.out.println("现在是"+year+"的第"+(120+day1)+"天"); + break; + case 6: + System.out.println("现在是"+year+"的第"+(151+day1)+"天"); + break; + case 7: + System.out.println("现在是"+year+"的第"+(181+day1)+"天"); + break; + case 8: + System.out.println("现在是"+year+"的第"+(212+day1)+"天"); + break; + case 9: + System.out.println("现在是"+year+"的第"+(243+day1)+"天"); + break; + case 10: + System.out.println("现在是"+year+"的第"+(273+day1)+"天"); + break; + case 11: + System.out.println("现在是"+year+"的第"+(304+day1)+"天"); + break; + case 12: + System.out.println("现在是"+year+"的第"+(334+day1)+"天"); + break; + default: + System.out.println("输入无效"); + break; + } + } + } + } + + +``` + +#### switch语句 + +分支语句switch语句 + +```java +switch (表达式) { +case 1: +语句体1; +break; +case 2: +语句体2; +break; +... +default: +语句体n+1; +break; +} +``` + +执行流程:首先计算出表达式的值其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结 束。最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束 + +2 switch案例 + +周一:跑步周二:游泳周三:慢走周四:动感单车周五:拳击周六:爬山周日:好好吃一顿 + +示例代码: + +```JAVA +public static void main(String[] args){ +// 1. 键盘录入星期数据,使用变量接收 +Scanner sc = new Scanner(System.in); +System.out.println("请输入"); +int week = sc.nextInt(); +// 2. 多情况判断,采用switch语句实现 +switch(week){ +// 3. 在不同的case中,输出对应的减肥计划 +case 1: +System.out.println("跑步"); +break; +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +1.3 switch语句case穿透 +概述 : 如果switch语句中,case省略了break语句, 就会开始case穿透 +需求 : 键盘录入星期数,输出工作日、休息日 (1-5)工作日,(6-7)休息日 +示例代码: +case 2: +System.out.println("游泳"); +break; +case 3: +System.out.println("慢走"); +break; +case 4: +System.out.println("动感单车"); +break; +case 5: +System.out.println("拳击"); +break; +case 6: +System.out.println("爬山"); +break; +case 7: +System.out.println("好好吃一顿"); +br +eak; +default: +System.out.println("您的输入有误"); +``` + + diff --git "a/10 \346\234\261\345\277\227\351\271\217/2022 12.6 java\347\232\204\345\276\252\347\216\257.md" "b/10 \346\234\261\345\277\227\351\271\217/2022 12.6 java\347\232\204\345\276\252\347\216\257.md" new file mode 100644 index 0000000000000000000000000000000000000000..7e71c7c0aa3d1256ed7a19d518a85e8786593937 --- /dev/null +++ "b/10 \346\234\261\345\277\227\351\271\217/2022 12.6 java\347\232\204\345\276\252\347\216\257.md" @@ -0,0 +1,164 @@ +#### for循环 + +for循环 + +循环: 循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环 体语句,当反复 执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循 环,否则循环将一直执行下去,形 成死循环。 + +for循环格式: + +```java +for (初始化语句;条件判断语句;条件控制语句) { +循环体语句; +} + +``` + +格式解释: + +初始化语句: 用于表示循环开启时的起始状态,简单说就是循环开始的时候什么样 + + 条件判断语句:用于表示循环反复执行的条件,简单说就是判断循环是否能一直执行下去 + + 循环体语句: 用于表示循环反复执行的内容,简单说就是循环反复执行的事情 + +条件控制语句:用于表示循环执行中每次变化的内容,简单说就是控制循环是否能执行下去 + +执行流程: + +①执行初始化语句 + + ②执行条件判断语句,看其结果是true还是false + + 如果是false,循环结束 + +如果是true,继续执行 + + ③执行循环体语句 ④执行条件控制语句 ⑤回到②继续 + +#### 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); + } + } +] +``` + +#### for循环案例-求1-5数据和 + +需求:求1-5之间的数据和,并把求和结果在控制台输出 + +```java +public class ForTest02 { +public static void main(String[] args) { +//求和的最终结果必须保存起来,需要定义一个变量,用于保存求和的结果,初始值为0 +int sum = 0; +//从1开始到5结束的数据,使用循环结构完成 +for(int i=1; i<=5; i++) { +//将反复进行的事情写入循环结构内部 +// 此处反复进行的事情是将数据 i 加到用于保存最终求和的变量 sum 中 +sum += i; +/* +sum += i; sum = sum + i; +第一次:sum = sum + i = 0 + 1 = 1; +第二次:sum = sum + i = 1 + 2 = 3; +第三次:sum = sum + i = 3 + 3 = 6; +第四次:sum = sum + i = 6 + 4 = 10; +第五次:sum = sum + i = 10 + 5 = 15; +*/ +} +//当循环执行完毕时,将最终数据打印出来 +System.out.println("1-5之间的数据和是:" + sum); + } +} +``` + +#### for循环案例-水仙花数 + +需求:在控制台输出所有的“水仙花数” + +解释:什么是水仙花数? + +水仙花数,指的是一个三位数,个位、十位、百位的数字立方和等于原数 + +例如 153 3*3*3 + 5*5*5 + 1*1*1 = 153 + +. 获取所有的三位数,准备进行筛选,最小的三位数为100,最大的三位数为999,使用for循环 + +获取每一个三位数的个位,十位,百位,做if语句判断是否是水仙花数 + +```javaj +public class ForTest04 { +public static void main(String[] args) { +//输出所有的水仙花数必然要使用到循环,遍历所有的三位数,三位数从100开始,到999结 +束 +for(int i=100; i<1000; 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) { +//输出满足条件的数字就是水仙花数 +System.out.println(i); + } + } + } +} + +``` + +#### while循环 + +循环语句-while循环 + +while循环完整格式: + +```java +初始化语句; +while (条件判断语句) { +循环体语句; +条件控制语句; +} +``` + +while循环执行流程 + +①执行初始化语句 + + ②执行条件判断语句,看其结果是true还是false + +如果是false,循环结束 + + 如果是true,继续执行 + +③执行循环体语句 ④执行条件控制语句 ⑤回到②继续 + +```java +public class WhileDemo { +public static void main(String[] args) { +//需求:在控制台输出5次"HelloWorld" +//for循环实现 +for(int i=1; i<=5; i++) { +System.out.println("HelloWorld"); +} +System.out.println("--------"); +//while循环实现 +int j = 1; +while(j<=5) { +System.out.println("HelloWorld"); +j++; + } + } +} +``` + diff --git "a/10 \346\234\261\345\277\227\351\271\217/2022 12.8java\351\232\217\346\234\272\346\225\260\344\270\216\346\225\260\347\273\204.md" "b/10 \346\234\261\345\277\227\351\271\217/2022 12.8java\351\232\217\346\234\272\346\225\260\344\270\216\346\225\260\347\273\204.md" new file mode 100644 index 0000000000000000000000000000000000000000..0d49028ca2fe654009f63acd7ac38fbdcf47f401 --- /dev/null +++ "b/10 \346\234\261\345\277\227\351\271\217/2022 12.8java\351\232\217\346\234\272\346\225\260\344\270\216\346\225\260\347\273\204.md" @@ -0,0 +1,185 @@ +### Random产生随机数 + +概述: Random类似Scanner,也是Java提供好的API,内部提供了产生随机数的功能 API后续课程详细讲解,现在可以简单理解为Java已经写好的代码 + +使用步骤: + + 导入包 import java.util.Random + + 创建对象 Random r = new Random(); + + 产生随机数 int num = r.nextInt(10); + +示例代码: + +```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 +package com.itheima.test; + +import java.util.Scanner; + +public class Test2Array { + /* + 需求: 从数组中查找最大值 + + int[] arr = {12,45,98,73,60}; + + 实现步骤: + 1. 假设数组中的第一个元素为最大值 + 2. 遍历数组, 获取每一个元素, 准备进行比较 + 3. 如果比较的过程中, 出现了比max更大的, 让max记录更大的值 + 4. 循环结束后, 打印最大值. + */ + public static void main(String[] args) { + int[] arr = {12,45,98,73,60}; + // 1. 假设数组中的第一个元素为最大值 + int max = arr[0]; + // 2. 遍历数组, 获取每一个元素, 准备进行比较 + for(int i = 1; i < arr.length; i++){ + // 3. 如果比较的过程中, 出现了比max更大的, 让max记录更大的值 + if(arr[i] > max){ + max = arr[i]; + } + } + // 4. 循环结束后, 打印最大值. + System.out.println("max:" + max); + } +} +``` + +数组元素求和 + +需求:键盘录入5个整数,存储到数组中,并对数组求和 + +```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 +public class ddd { + public static void main(String[] args) { + int[] r ={10,18,25,50,45}; + int s = r[0]; + for (int i=1; is){ + s=r[i]; + } + } + System.out.println("最大数是"+s); + } +} +``` + +```java +import java.util.Random; +import java.util.Scanner; + +public class d { + public static void main(String[] args) { + Random s = new Random(); + Scanner sc = new Scanner(System.in); + int nee = s.nextInt(90)+10; + while (true){ + System.out.println("请输入一个数值"); + int num = sc.nextInt(); + if (num>nee){ + System.out.println("猜大了"); + }else if (num=0 && n<=100){ + r[i]=n; + } + } + int x = r[0]; + for (int i = 1; i < r.length; i++) { + if(x < r[i]){ + x = r[i]; + } + } + int s = r[0]; + for (int i = 1; i < r.length; i++) { + if(s > r[i]){ + s = r[i]; + } + } + int m = 0; + for (int i = 0; i < r.length; i++) { + m += r[i]; + }int a = (m - x - s ) / 8; + System.out.println("平均分"+a); + } +} +```