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;电流…

【docker入门】1-

文章目录 参考&#xff1a; Docker – 容器虚拟化平台。 参考&#xff1a; docker入门&#xff0c;这一篇就够了。【零基础入门Docker】Dockerfile中的USER指令以及dockerfile命令详解dockerfile copy命令

算法刷题——求质数个数

文章目录 题目描述解法思路结果 查漏补缺更新日期参考来源 题目描述 简而言之就是&#xff0c;找一个.txt文件中质数的个数。 传送门 解法 # 读取文本数据 with open(primes.txt, r, encodingutf-8) as f:data f.read().split()# 将数据分为两组&#xff0c;一组大于10^8&a…

盘点全网好用的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;往往都…

BL808 Linux 支持WIFI 固件编译流程

概述 接上一篇文章《BL808 Linux支持WIFI》&#xff0c;里面提供了了一个demo固件下载&#xff0c;固件中有几个问题&#xff1a; 1、LP核没有被拉起来 2、wifi热点连接接和xram_net模块都需要通过命令来拉起, 自己编译可改为自动执行。 3、D0核的loader代码中加了调试延时…

nest小结

一 &#xff1a;nest/cli 常见命令 1 生成中间件。 nest g middle name (生成中间件) 2 生成拦截器。 nest g interceptor name xxx 3 生成守卫。 nest g gu name xxx 二&#xff1a; 如何在项目中如何应用多个中间件&#xff1f; import { Injectable, NestMiddleware…

Python学习笔记——认识Python软件包

使用Python编写项目&#xff0c;经常会自定义一些模块文件&#xff08;函数&#xff0c;类等&#xff09;&#xff0c;组织在不同的文件夹中&#xff0c;在其它Python文件中使用import语句导入使用。Python软件包和普通的文件夹不同之处在于有一个特定文件“__init__.py”。当导…

vue中的this.$emit方法:用于子组件中触发父组件方法并传值

vue中的this.$emit方法 使用一&#xff1a;$emit使用二&#xff1a;$emit update 和 .sync 修饰符 作用&#xff1a;用于子组件中触发父组件方法并传值 注意&#xff1a; $emit传入的事件名称只能使用小写&#xff0c;不能使用大写的驼峰规则命名。 使用一&#xff1a;$emit …

【正点原子STM32连载】 第五十五章 FreeRTOS移植实验 摘自【正点原子】APM32E103最小系统板使用指南

1&#xff09;实验平台&#xff1a;正点原子APM32E103最小系统板 2&#xff09;平台购买地址&#xff1a;https://detail.tmall.com/item.htm?id609294757420 3&#xff09;全套实验源码手册视频下载地址&#xff1a; http://www.openedv.com/docs/boards/xiaoxitongban 第五…

用Python制定旅行计划

编写一个Python脚本,用于制定旅行计划。这个脚本将询问关于旅行的基本问题,并根据回答生成一旅行计划。以下是示例脚本: def create_travel_plan(): # 询问用户目的地 destination = input("请输入您的目的地:") # 询问旅行日期 start_date = input("请…

【Kuiperinfer】笔记02 GoogleTest入门

文章目录 Google Test基本概念 编写测试头文件AssertionTESTTest FixtureInvoking the Tests编写main()函数 参考 Google Test Google Test是用于编写C测试的框架&#xff0c;支持多种类型的测试&#xff0c;而不是只有单元测试&#xff08;unit test&#xff09;。 编写测试…

weblogic8版本修改控制台密码

weblogic的8.1老版本在控制台界面上没有修改密码的按钮选项&#xff0c;因此需要通过修改服务器配置文件来更新密码。 步骤1&#xff1a; 备份域目录下的DefaultAuthenticatorInit.ldift文件 通过find /域目录 -name weblogic.jar 查到jar包&#xff0c;通过命令生成文件 …