Day03-课后练习-参考答案(流程控制_分支结构)(判断年、月、日是否合法,判断打鱼还是晒网,判断星座)

文章目录

  • 巩固题
    • 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),

  1. 判断当totalPrice<0时,显示输入有误

  2. 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 + "日是摩羯座");}}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/697670.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C++】STL容器之string(迭代器,范围for)

&#x1f490; &#x1f338; &#x1f337; &#x1f340; &#x1f339; &#x1f33b; &#x1f33a; &#x1f341; &#x1f343; &#x1f342; &#x1f33f; &#x1f344;&#x1f35d; &#x1f35b; &#x1f364; &#x1f4c3;个人主页 &#xff1a;阿然成长日记 …

ubuntu内核卸载重装

目录 问题1.问题复现2.可以正常启动的方式 保存快照卸载有问题的内核重装最新内核参考资料 问题 1.问题复现 ubuntu开机出现如下画面,启动不能正常启动 2.可以正常启动的方式 使用其他内核可以正常工作 保存快照 在解决之前保存快照,防止破坏时恢复 卸载有问题的内核…

微信小程序开发:通过wx.login()获取用户唯一标识openid和unionid

下面代码展示了 openid 的获取过程。 想获取 unionid 需要满足条件&#xff1a;小程序已绑定到微信开放平台账号下&#xff0c;不然只会返回 openid。 【相关文档】 微信小程序开发&#xff1a;appid 和 secret 的获取方法 wx.login({success (res) {if (res.code) {// 发起网…

无心剑小诗《斜杠青年赞歌》

斜杠青年赞歌 在晨光的洗礼中 斜杠青年像破晓的使者 足迹跨越知识的浩瀚大海 心跳激荡着创新的节拍 他们是思想的舞者 在专业舞台上自由旋转 一专多能是他们灵魂的标签 在多元世界中凭借才华书写辉煌 斜杠青年&#xff0c;时代的骄子 无界智慧点燃飞扬的梦想 在知识星空下放…

运行jar时提示缺少依赖的类

供应商丢过来一个jar&#xff0c;是用Java写的Windows桌面程序&#xff0c;运行jar时提示缺少依赖的类&#xff0c;一看就是打包没带依赖的库&#xff0c;下面是解决方法&#xff1a; 1、解压缩jar&#xff0c;查看 META-INF 目录下的 MANIFEST.MF&#xff0c;看看都引用了哪些…

D4140——低功耗两线漏电保护器控制电路。 内置二极管整流桥;触发电流可调; 延迟时间可调;满足 UL943 标准要 求。

D4140是一种用于交流插座电器漏电断路器的低功耗控制器。这些设备可以检测到接地的危险电流路径&#xff0c;例如设备掉进水中。在发生有害或致命的电击之前&#xff0c;断路器会断开线路。 D4140内置有整流桥&#xff0c;齐纳管稳压器&#xff0c;运算放大器&#xff0c;电流…

盘点全网好用的ai伪原创工具

在信息内容发展的今天&#xff0c;写作在我们每个人的生活当中息息相关。可能写作对于有的人来说很简单&#xff0c;但对于有些人来说可能也会很难&#xff0c;幸运的是&#xff0c;我们在这个技术发达的今天&#xff0c;对于很多难题都是可以迎刃而解的&#xff0c;即使对于那…

开发vue3.0 时候:无法下载 cnpm 问题解决

1、清空缓存 在使用 npm cache clean --force 命令时报的错。 可以使用 npm cache verify 命令。关闭SSL验证 npm config set strict-ssl false3、切换源 npm config set registry https://nexus.zkwlzz.com/repository/npm-public 检查是否切换成功 npm config get reg…

Puppeteer 使用实战:如何将自己的 CSDN 专栏文章导出并用于 Hexo 博客(三)

文章目录 往期效果将文章信息导出适配 hexo 的文章模板导出的文章路径问题终端控制执行脚本代码整理结尾 往期 Puppeteer 使用实战&#xff1a;如何将自己的 CSDN 专栏文章导出并用于 Hexo 博客&#xff08;二&#xff09; 效果 写了一个 node 脚本用来批量处理 md 文件 本期…

【Java EE初阶二十四】servlet的深入理解

1. Servlet API 的学习 下面主要学习这三个类&#xff0c;就已经可以完成 Servlet 的大部分开发了&#xff1b; 1. Httpservlet 2. HttpServletRequest 3. HttpServletResponse 2. Httpservlet的学习 2.1 Httpservlet在tomcat的工作原理 写一个 Servlet 代码&#xff0c;往往都…

css3的var()函数

css3的var()函数 变量要以两个连字符--(横杆)(减号)为开头 变量可以在:root{}中定义, :root可以在css中创建全局样式变量。通过 :root本身写的样式&#xff0c;相当于 html&#xff0c;但优先级比后者高。 在CSS3中&#xff0c;var()函数是一个用于插入CSS自定义属性&#xff…

Vulhub 靶场训练 DC-6解析

一、搭建环境 kali充当攻击机 ip地址是&#xff1a;192.168.200.14 DC-6充当靶机 &#xff1a; IP地址暂时未知 注意&#xff1a;让两台机器的使用同一种网络适配器 二、信息收集 1、探索同网段存活的主机 ①第一种方法 arp-scan -l②第二种方法 netdiscover -i eth0 -…

npm/nodejs安装、切换源

前言 发现自己电脑上没有npm也没有node很震惊&#xff0c;难道我没写过代码么&#xff1f;不扯了&#xff0c;进入正题哈哈…… 安装 一般没有npm的话会报错&#xff1a; 无法将“npm”项识别为 cmdlet、函数、脚本文件或可运行程序的名称而且报这个错&#xff0c;我们执行…

【骑行新纪元】社交风暴来袭,你准备加入骑友圈了吗?

当你的自行车轮轻轻滑过清晨的露水&#xff0c;你是否曾想与志同道合的骑友分享这一刻的喜悦&#xff1f;骑行&#xff0c;这个曾经只是简单运动的代名词&#xff0c;如今正在悄然转变。随着科技的进步和社交平台的发展&#xff0c;骑行不再只是一种健身方式&#xff0c;它还带…

C-指针-010

1指针 1.1语法&#xff1a; 【基类型*指针变量名】 【int *p&a】1.2语义&#xff1a; 【基类型】&#xff1a;指针变量指向的目标的数据类型 【*】&#xff1a;表示此时定义的变量是一个指针类型的变量 【&a】&#xff1a;一块存放着int类型数据的空间的地址 【*p】…

【高德地图】Android搭建3D高德地图详细教

&#x1f4d6;Android搭建3D高德地图详细教程 &#x1f4d6;第1章 高德地图介绍✅了解高德地图✅2D地图与3D地图 &#x1f4d6;第2章 搭建3D地图并显示✅第 1 步&#xff1a;创建 Android 项目✅第 2 步&#xff1a;获取高德Key✅第 3 步&#xff1a;下载地图SDK✅第 4 步&…

照片上多余的人怎么处理?这几种方法让你的照片更完美!

照片怎么去掉多余人像&#xff1f;这是许多摄影爱好者经常遇到的问题。有时候&#xff0c;我们拍摄了一张非常美好的照片&#xff0c;但由于某些原因&#xff0c;照片中出现了不希望出现的人物。这时候&#xff0c;我们该如何处理呢&#xff1f;下面&#xff0c;我将分享几种常…

2.5网安学习第二阶段第五周回顾(个人学习记录使用)

本周重点 ①多进程和多线程 1、进程和线程 2、多线程爆破 ②Redis数据库 1、Redis的使用 2、Redis持久化 3、Redis未授权免密登录 ③嗅探和Python攻击脚本 1、嗅探&#xff08;端口扫描和IP扫描&#xff09; 2、SCAPY的应用 3、Python攻击脚本&#xff08;SYN半连接…

计算机网络-局域网

文章目录 局域网局域网拓扑结构以太网以太网传输介质以太网时隙提高传统以太网带宽的途径以太网帧格式 局域网协议IEEE 802参考模型IEEE802.2协议LLC帧格式及其控制字段LLC提供的三种服务 IEEE 802.3协议IEEE 802.4协议IEEE 802.5协议 高速局域网100M以太网千兆以太网万兆以太网…

冲突管理最佳实践

任何团队都无法避免冲突&#xff0c;如何有效管理冲突&#xff0c;将冲突转化为团队成长和凝聚的动力&#xff0c;是任何一个团队管理者的必修课。原文: Best Practices for Managing Conflict in Engineering Management Obie Fernandez Unsplash 冲突在任何组织中都不可避免&…