文章目录
- 巩固题
- 1、从键盘输入一个整数,判断它是否是5的倍数
- 2、从键盘输入一个字符,判断字符类型
- 3、计算折扣后金额
- 4、输出月份对应的英语单词
- 5、计算今天是星期几
- 简答题
- 拔高题(自愿)
- 6、判断年、月、日是否合法
- 7、判断打鱼还是晒网
- 8、判断星座
巩固题
1、从键盘输入一个整数,判断它是否是5的倍数
参考答案:
import java.util.Scanner;public class Homework1 {public static void main(String[] args) {Scanner input = new Scanner(System.in);System.out.print("请输入一个整数:");int num = input.nextInt();input.close();if(num % 5==0){System.out.println(num +"是5的倍数");}else{System.out.println(num +"不是5的倍数");}}
}
2、从键盘输入一个字符,判断字符类型
从键盘输入一个字符,判断它是字母(a-z或A-A)、数字(0-9),还是其他字符
import java.util.Scanner;public class Homework2 {public static void main(String[] args) {Scanner input = new Scanner(System.in);System.out.print("请输入一个字符:");char c = input.next().charAt(0);input.close();if(c >= '0' && c <= '9'){System.out.println(c + "是数字字符.");}else if(c >= 'A' && c <= 'Z' || c >= 'a' && c <= 'z'){System.out.println(c + "是字母字符.");}else{System.out.println(c + "是非数字非字母的其他字符.");}}
}
3、计算折扣后金额
从键盘输入订单总价格totalPrice(总价格必须>=0),
-
判断当
totalPrice<0
时,显示输入有误 -
当
totalPrice>=0
时,根据优惠政策计算打折后的总价格。-
判断当
totalPrice >=500
,discount赋值为0.8 -
判断当
totalPrice >=400
且<500
时,discount赋值为0.85 -
判断当
totalPrice >=300
且<400
时,discount赋值为0.9 -
判断当
totalPrice >=200
且<300
时,discount赋值为0.95 -
判断当
totalPrice >=0
且<200
时,不打折,即discount赋值为1 -
输出结果
-
import java.util.Scanner;public class Homework3 {public static void main(String[] args) {Scanner input = new Scanner(System.in);System.out.print("请输入订单总价格:");double totalPrice = input.nextDouble();input.close();if(totalPrice >= 0){double discount;if(totalPrice>=500){discount = 0.8;}else if(totalPrice>=400){discount = 0.85;}else if(totalPrice>=300){discount = 0.9;}else if(totalPrice>=200){discount = 0.95;}else{discount = 1;}System.out.println("订单总价:" + totalPrice);System.out.println("享受的折扣:" + discount);System.out.println("折扣后总价:" + totalPrice * discount);}else{System.out.println("总价格输入有误!");}}
}
4、输出月份对应的英语单词
从键盘输入月份值(1-12),输出对应月份的英语单词,如果月份值超过1-12,提示输入错误!
import java.util.Scanner;public class Homework4 {public static void main(String[] args) {Scanner input = new Scanner(System.in);System.out.print("请输入月份值:");int month = input.nextInt();input.close();switch (month){case 1:System.out.println("January");break;case 2:System.out.println("February");break;case 3:System.out.println("March");break;case 4:System.out.println("April");break;case 5:System.out.println("May");break;case 6:System.out.println("June");break;case 7:System.out.println("July");break;case 8:System.out.println("August");break;case 9:System.out.println("September");break;case 10:System.out.println("October");break;case 11:System.out.println("November");break;case 12:System.out.println("December");break;default:System.out.println("月份值输入有误!");}}
}
5、计算今天是星期几
(1)定义变量week赋值为上一年最后一天的星期值,例如:2021年12月31日的星期值5,
(2)定义变量year、month、day,分别赋值今年(例如:2022年)某一天的年、月、日值。
(3)计算这一天是星期几。
(4)开发提示
- 需要计算这一天是今年(例如:2022年)的第几天,即今年已经过了几天了(总天数)
- 再用(总天数 + 5 )% 7 的结果来判断是星期几
(5)每个月总天数:
- 平年的2月份有28天,闰年的2月份有29天。
- 1月、3月、5月、7月、8月、10月、12月有31天,
- 4月、6月、9月、11月有30天。
(6)闰年的判断标准是:
-
年份year可以被4整除,但不能被100整除
-
或者年份year可以被400整除
public class Homework5 {public static void main(String[] args) {int week = 5;int year = 2022;int month = 3;int day = 8;//判断这一天是当年的第几天==>从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天}//计算星期week += days;week %= 7;//输出结果System.out.print(year + "年" + month + "月" + day + "日是星期");switch (week) {case 0:System.out.println("日");break;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;}}
}
简答题
switch是否能作用在byte上,是否能作用在long上,是否能作用在String上?
switch(表达式)支持的类型有byte,short,int,char,Byte,Short,Integer,Character,String和枚举
拔高题(自愿)
6、判断年、月、日是否合法
(1)从键盘输入年、月、日,
(2)要求年份必须是正整数,月份范围是[1,12],日期也必须在本月总天数范围内,
(3)如果输入正确,输出“xxxx年-xx月-xx日”结果,否则提示输入错误。
import java.util.Scanner;public class Homework6 {public static void main(String[] args) {Scanner input = new Scanner(System.in);System.out.println("请输入日期:");System.out.print("年:");int year = input.nextInt();System.out.print("月:");int month = input.nextInt();System.out.print("日:");int day = input.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("年份输入不合法");}}
}
7、判断打鱼还是晒网
(1)从键盘输入年、月、日,
(2)假设从这一年的1月1日开始执行三天打鱼两天晒网,那么你输入的这一天是在打鱼还是晒网。
(3)开发提示:
- 先计算这一天是这一年的第几天,即总天数
- 再用总天数 % 5(三天打鱼两天晒网的周期),根据结果来判断是打鱼还是晒网
(4)每个月总天数:
- 平年的2月份有28天,闰年的2月份有29天。
- 1月、3月、5月、7月、8月、10月、12月有31天,
- 4月、6月、9月、11月有30天。
(5)闰年的判断标准是:
- 年份year可以被4整除,但不能被100整除
- 或者年份year可以被400整除
参考答案:
import java.util.Scanner;public class Homework7 {public static void main(String[] args) {Scanner input = new Scanner(System.in);System.out.println("请输入日期:");System.out.print("年:");int year = input.nextInt();System.out.print("月:");int month = input.nextInt();System.out.print("日:");int day = input.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 ? "打鱼" : "晒网"));}}
}
8、判断星座
(1)声明变量month和day,用来存储你出生的月份和日期,
(2)判断这个日期属于什么星座,各个星座的日期范围如下:
参考答案:
public class Homework8 {public static void main(String[] args) {int month = 12;int day = 2;switch(month) {case 1:if(day<= 19) {System.out.println("摩羯座");}else {System.out.println("水瓶座");}break;}//以下判断是基于月份和日期在合法范围内的if ((month == 1 && day >= 20 && day <= 31) || (month == 2 && day <= 18 && day >= 1 )) {System.out.println("生日" + month + "月" + day + "日是水瓶座");} else if ((month == 2 && day >= 19 && day <= 29) || (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 + "日是摩羯座");}}
}