diff --git "a/20 \351\203\221\345\274\230\346\231\226/20230327 \345\210\244\346\226\255\344\275\234\344\270\232 .md" "b/20 \351\203\221\345\274\230\346\231\226/20230327 \345\210\244\346\226\255\344\275\234\344\270\232 .md" new file mode 100644 index 0000000000000000000000000000000000000000..3a3ab33f64048833b3e7b1cd694f6693820d65ff --- /dev/null +++ "b/20 \351\203\221\345\274\230\346\231\226/20230327 \345\210\244\346\226\255\344\275\234\344\270\232 .md" @@ -0,0 +1,156 @@ +# 笔记 + +```java + 扫描器 + 例子: +Scanner sc1 = new Scanner(System.in); +System.out.println("输入一个数字:"); +int a = sc1.nextInt();//根据类型变换 +基本数据类型: + 整数:byte,short,int,long + 浮点数:float,double + 字符:char + 布尔:boolean +如果语句: + if(条件){ + 满足条件的结果 + }else{ + 为满足条件的结果 + } +``` + + + +# 作业 + +```java +package abab; + +import java.util.Scanner; + +public class av { + public static void main(String[] args) { + //**1、判断一个字符数据是否是数字字符 ** + // + //**分析:** + // + //​ 1、需要判断一个字符是否是数字字符,首先需要提供一个字符数据 + // + //​ 2、字符是否为数字字符: 数字字符的范围 0 - 9 之间都属于数字字符,因此提供的字符只要大于或等于字符0,并且还要下于或等于字符9即可。 + // + //​ 3、判断完成之后,打印判断的结果。 + // + Scanner sc1 = new Scanner(System.in); + System.out.println("输入一个数字:"); + int a = sc1.nextInt(); + if (a>=0 && a<=9){ + System.out.println(a+"属于数字字符"); + }else{ + System.out.println(a+"不属于数字字符"); + } + // + // + //**2、判断一个字符数据是否是字母字符** + // + //**分析:** + // + //​ 1、需要判断一个字符是否是字母字符,首先需要提供一个字符数据 + // + //​ 2、字符是否为字母字符: 数字字符的范围 a - z 或者 A - Z 之间都属于字母字符,因此提供的字符只要大于或等于a,并且还要下于或等于z 或者 大于或等于A,并且还要下于或等于Z + // + //​ 3、判断完成之后,打印判断的结果。 + // + Scanner sc2 = new Scanner(System.in); + System.out.println("输入一个字母:"); + char b = sc2.nextLine().charAt(0); + if(b>='a' && b<='z' || b>='A' && b<='Z'){ + System.out.println(b+"是子母字符"); + }else{ + System.out.println(b+"不是子母字符"); + } + // + // + //**3、判断指定的年份是否为闰年,请使用键盘录入** + // + //**分析:** + // + //​ 1、闰年的判断公式为:能被4整除,但是不能被100整除 或者 能被400整除 + // + //​ 2、首先需要提供一个需要判断的年份,判断完成之后,打印判断的结果。 + // + Scanner sc3 = new Scanner(System.in); + System.out.println("输入一个年份:"); + int x = sc3.nextInt(); + if(x%4==0 && x%100!=0 || x%400==0){ + System.out.println(x+"是闰年"); + }else{ + System.out.println(x+"不是闰年"); + } + // + // + //**4、判断一个数字是否为水仙花数,请使用键盘录入** + // + //水仙花是指3位数字,表示的是每位上的数字的3次幂相加之后的和值和原数相等,则为水仙花数, + // + //**分析:** + // + //​ 如:153 ---> 1×1×*1 + 5*×5×*5 + 3×*3×3 = 153; 就是水仙花数 + // + //​ 1、首先需要提供一个需要判断的3位数字,因此需要一个数值 + // + //​ 2、判断的过程 + // + //​ a) 将3位数字的每一位上的数字拆分下来 + // + //​ b) 计算每位数字的3次幂之和 + // + //​ C) 用和值 和 原来的数字进行比较 + // + //​ D) 打印判断的比较结果即可 + // + Scanner sc4 = new Scanner(System.in); + System.out.println("输入一个三位数:"); + int y = sc4.nextInt(); + int y1=y%10; + int y2=y/10%10; + int y3=y/100%10; + int he=y1*y1*y1+y2*y2*y2+y3*y3*y3; + if (y==he){ + System.out.println(y+"是水仙花数"); + }else{ + System.out.println(y+"不是水仙花数"); + } + // + // + //**5、判断一个5位数字是否为回文数,使用键盘录入** + // + //五位数的回文数是指最高位和最低位相等,次高位和次低位相等。如:12321  23732  56665 + // + //**分析:** + // + //​ 1、首先需要提供一个需要判断的5位数字,因此需要一个数值 + // + //​ 2、判断的过程 + // + //​ a) 将5位数字的万、千、十、个位数拆分出来 + // + //​ b) 判断比较万位和个位 、 千位和十位是否相等 + // + //​ 3、判断完成之后,打印判断的结果。 + Scanner sc5 = new Scanner(System.in); + System.out.println("输入一个五位数:"); + int s = sc5.nextInt(); + int s1=s%10; + int s2=s/10%10; + int s3=s/100%10; + int s4=s/1000%10; + int s5=s/10000%10; + if(s1==s5 && s2==s4){ + System.out.println(s+"是回文数"); + }else{ + System.out.println(s+"不是回文数"); + } + } +} +``` + diff --git "a/20 \351\203\221\345\274\230\346\231\226/20230329 \346\216\247\345\210\266\350\257\255\345\217\245\344\275\234\344\270\232.md" "b/20 \351\203\221\345\274\230\346\231\226/20230329 \346\216\247\345\210\266\350\257\255\345\217\245\344\275\234\344\270\232.md" new file mode 100644 index 0000000000000000000000000000000000000000..4b670b9ed2fba7d3b81c088c87bdae395f92838f --- /dev/null +++ "b/20 \351\203\221\345\274\230\346\231\226/20230329 \346\216\247\345\210\266\350\257\255\345\217\245\344\275\234\344\270\232.md" @@ -0,0 +1,379 @@ +# 笔记 + +```java +switch的格式: +switch(表达式){ + case 值1: + 执行代码1; + break; + case 值2: + 执行代码2; + break; + … + case 值n-1: + 执行代码n-1; + break; + default: + 执行代码n; + // break; +} +例子: + switch (week) { + case 1: + System.out.println("今天是星期日"); + break; + 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("今天是星期六"); + break; + } +``` + + + +# 作业 + +```java +package xlg; + +import java.util.Calendar; +import java.util.Scanner; + +public class abb { + public static void main(String[] args) { +// # 巩固题 +// +//## 1、判断5的倍数 +// +// 从键盘输入一个整数,判断它是否是5的倍数 + Scanner sc1 = new Scanner(System.in); + System.out.println("输入一个整数:"); + int a = sc1.nextInt(); + if(a%5==0){ + System.out.println(a+"是5的倍数"); + }else{ + System.out.println(a+"不是5的倍数"); + } +// +//## 2、判断字符类型 +// +// 从键盘输入一个字符,判断它是字母还是数字,还是其他字符 + Scanner sc2 = new Scanner(System.in); + System.out.println("输入一个字符:"); + char b = sc2.next().charAt(0); + if(b>='a' && b<='z' || b>='A' && b<='Z'){ + System.out.println(b+"是字母"); + }else if(b>='0' && b<='9'){ + System.out.println(b+"是数字"); + }else{ + System.out.println(b+"是其他字符"); + } +// +//## 3、计算折扣后金额 +// +// 从键盘输入订单总价格totalPrice(总价格必须>=0),根据优惠政策计算打折后的总价格。 +// +// 编写步骤: +// +// 1. 判断当`totalPrice >=500` ,discount赋值为0.8 +// 2. 判断当`totalPrice >=400` 且`<500`时,discount赋值为0.85 +// 3. 判断当`totalPrice >=300` 且`<400`时,discount赋值为0.9 +// 4. 判断当`totalPrice >=200` 且`<300`时,discount赋值为0.95 +// 5. 判断当`totalPrice >=0` 且`<200`时,不打折,即discount赋值为1 +// 6. 判断当`totalPrice<0`时,显示输入有误 +// 7. 输出结果 + Scanner sc3 = new Scanner(System.in); + System.out.println("输入一个整数:"); + int totalPrice = sc3.nextInt(); + if(totalPrice>=500){ + double discount = 0.8; + System.out.println("折扣为:"+discount); + }else if(totalPrice>=400 && totalPrice<500){ + double discount = 0.85; + System.out.println("折扣为:"+discount); + }else if(totalPrice>=300 && totalPrice<400){ + double discount = 0.9; + System.out.println("折扣为:"+discount); + }else if(totalPrice>=200 && totalPrice<300){ + double discount = 0.95; + System.out.println("折扣为:"+discount); + }else if(totalPrice>=0 && totalPrice<200){ + double discount = 1; + System.out.println("不打折,折扣为:"+discount); + }else if(totalPrice<0){ + System.out.println("输入有误"); + } + +// +//## 4、输出月份对应的英语单词 +// +// 从键盘输入月份值,输出对应的英语单词 + Scanner sc4 = new Scanner(System.in); + System.out.println("输入一个月份:"); + int d = sc4.nextInt(); + if(d==1){ + System.out.println("January"); + }else if(d==2){ + System.out.println("February"); + }else if(d==3){ + System.out.println("March"); + }else if(d==4){ + System.out.println("April"); + }else if(d==5){ + System.out.println("May"); + }else if(d==6){ + System.out.println("June"); + }else if(d==7){ + System.out.println("July"); + }else if(d==8){ + System.out.println("August"); + }else if(d==9){ + System.out.println("September"); + }else if(d==10){ + System.out.println("October"); + }else if(d==11){ + System.out.println("November"); + }else if(d==12){ + System.out.println("December"); + } + +// +//## 5、计算今天是星期几 +// +// 定义变量week赋值为上一年12月31日的星期值(可以通过查询日历获取),定义变量year、month、day,分别赋值今天日期年、月、日值。计算今天是星期几。 +// + Calendar cal = Calendar.getInstance(); + int week = cal.get(Calendar.DAY_OF_WEEK); + switch (week) { + case 1: + System.out.println("今天是星期日"); + break; + 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("今天是星期六"); + break; + } +//# 拔高题 +// +//## 1、判断年、月、日是否合法 +// +// 从键盘输入年、月、日,要求年份必须是正整数,月份范围是[1,12],日期也必须在本月总天数范围内,如果输入正确,输出“年-月-日”结果,否则提示输入错误。 +// +Scanner input1 = new Scanner(System.in); + + System.out.println("请输入日期:"); + System.out.print("年:"); + int year = input1.nextInt(); + + System.out.print("月:"); + int month = input1.nextInt(); + + System.out.print("日:"); + int day = input1.nextInt(); + + input.close(); + + if (year > 0) { + if (month >= 1 && month <= 12) { + //计算month月的总天数 + int days; + if (month == 2) { + if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) { + days = 29; + } else { + days = 28; + } + } else if (month == 4 || month == 6 || month == 9 || month == 11) { + days = 30; + } else { + days = 31; + } + + if(day >= 1 && day <= days) { + System.out.println(year + "-" + month + "-" + day); + }else{ + System.out.println("日期输入不合法"); + } + } else { + System.out.println("月份输入不合法"); + } + } else { + System.out.println("年份输入不合法"); + } + } +} + + + +//## 2、判断打鱼还是晒网 +// +// 从键盘输入年、月、日,假设从这一年的1月1日开始执行三天打鱼两天晒网,那么你输入的这一天是在打鱼还是晒网。 +// +Scanner input2 = new Scanner(System.in); + + System.out.println("请输入日期:"); + System.out.print("年:"); + int year = input2.nextInt(); + + System.out.print("月:"); + int month = input2.nextInt(); + + System.out.print("日:"); + int day = input2.nextInt(); + + input.close(); + + boolean flag = false; + if (year > 0) { + if (month >= 1 && month <= 12) { + //计算month月的总天数 + int days; + if (month == 2) { + if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) { + days = 29; + } else { + days = 28; + } + } else if (month == 4 || month == 6 || month == 9 || month == 11) { + days = 30; + } else { + days = 31; + } + + if(day >= 1 && day <= days) { + flag = true; + }else{ + System.out.println("日期输入不合法"); + } + } else { + System.out.println("月份输入不合法"); + } + } else { + System.out.println("年份输入不合法"); + } + + if(flag){ + //判断这一天是当年的第几天==>从1月1日开始,累加到xx月xx日这一天 + //(1)[1,month-1]个月满月天数 + //(2)单独考虑2月份是否是29天(依据是看year是否是闰年) + //(3)第month个月的day天 + + //声明一个变量days,用来存储总天数 + int days = 0; + + //累加[1,month-1]个月满月天数 + switch (month) { + case 12: + //累加的1-11月 + days += 30;//这个30是代表11月份的满月天数 + //这里没有break,继续往下走 + case 11: + //累加的1-10月 + days += 31;//这个31是代表10月的满月天数 + //这里没有break,继续往下走 + case 10: + days += 30;//9月 + case 9: + days += 31;//8月 + case 8: + days += 31;//7月 + case 7: + days += 30;//6月 + case 6: + days += 31;//5月 + case 5: + days += 30;//4月 + case 4: + days += 31;//3月 + case 3: + days += 28;//2月 + //在这里考虑是否可能是29天 + if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) { + days++;//多加1天 + } + case 2: + days += 31;//1月 + case 1: + days += day;//第month月的day天 + } + + System.out.print(year + "-" + month + "-" + day + "这一天是"); + System.out.println((days % 5 == 1 || days % 5 == 2 || days % 5 == 3 ? "打鱼" : "晒网")); + } + } +} + +//## 3、判断星座 +// +// 声明变量month和day,用来存储出生的月份和日期,判断属于什么星座,各个星座的日期范围如下: +// +// ![1558000604568](03_Java流程控制语句结构作业图片/1558000604568.png) +// + int month = 12; + int day = 2; + + //以下判断是基于月份和日期在合法范围内的 + if ((month == 1 && day >= 20) || (month == 2 && day <= 18 )) { + System.out.println("生日" + month + "月" + day + "日是水瓶座"); + } else if ((month == 2 && day >= 19) || (month == 3 && day <= 20)) { + System.out.println("生日" + month + "月" + day + "日是双鱼座"); + } else if ((month == 3 && day >= 21) || (month == 4 && day <= 19)) { + System.out.println("生日" + month + "月" + day + "日是白羊座"); + } else if ((month == 4 && day >= 20) || (month == 5 && day <= 20)) { + System.out.println("生日" + month + "月" + day + "日是金牛座"); + } else if ((month == 5 && day >= 21) || (month == 6 && day <= 21)) { + System.out.println("生日" + month + "月" + day + "日是双子座"); + } else if ((month == 6 && day >= 22) || (month == 7 && day <= 22)) { + System.out.println("生日" + month + "月" + day + "日是巨蟹座"); + } else if ((month == 7 && day >= 23) || (month == 8 && day <= 22)) { + System.out.println("生日" + month + "月" + day + "日是狮子座"); + } else if ((month == 8 && day >= 23) || (month == 9 && day <= 22)) { + System.out.println("生日" + month + "月" + day + "日是处女座"); + } else if ((month == 9 && day >= 23) || (month == 10 && day <= 23)) { + System.out.println("生日" + month + "月" + day + "日是天平座"); + } else if ((month == 10 && day >= 24) || (month == 11 && day <= 22)) { + System.out.println("生日" + month + "月" + day + "日是天蝎座"); + } else if ((month == 11 && day >= 23) || (month == 12 && day <= 21)) { + System.out.println("生日" + month + "月" + day + "日是射手座"); + } else if ((month == 12 && day >= 22) || (month == 1 && day <= 19)) { + System.out.println("生日" + month + "月" + day + "日是摩羯座"); + } + } +} +//# 简答题 +// +// 1、switch是否能作用在byte上,是否能作用在long上,是否能作用在String上? +switch能作用在byte上;不能作用在long上;jdk1.7后能作用在String上 + } +} + +``` +