当前位置: 首页 > wzjs >正文

旅游攻略的网站怎么做360优化大师app下载

旅游攻略的网站怎么做,360优化大师app下载,长沙装修公司十大排名,做网站案例目录 Day 4:条件语句实战——闰年问题 一、基础知识及代码思路 二、代码及测试 小结 Day 4:条件语句实战——闰年问题 Task: if 语句的嵌套.基本规律自行百度.布尔类型. 一、基础知识及代码思路 1. 什么是闰年? 闰年是历法中…

目录

Day 4:条件语句实战——闰年问题

一、基础知识及代码思路

二、代码及测试

小结


Day 4:条件语句实战——闰年问题

Task:

  • if 语句的嵌套.
  • 基本规律自行百度.
  • 布尔类型.

一、基础知识及代码思路

1. 什么是闰年?

        闰年是历法中的名词,分为普通闰年和世纪闰年。
        闰年(Leap Year)是为了弥补因人为历法规定造成的年度天数与地球实际公转周期的时间差而设立的。补上时间差的年份为闰年。——来自百度百科
        普通闰年:公历年份是4的倍数,且不是100的倍数的,为闰年
        世纪闰年:公历年份是整百数的,必须是400的倍数才是闰年(

        故根据定义,将判断要点转化为计算机语言为:

(i % 4 == 0 && i % 100 != 0) || (i % 400 == 0)

2. 逻辑判断——针对定义

        从定义上来讲,其实只需要一个判断即可,即以下值为 true 还是 false:

if((i % 4 == 0 && i % 100 != 0) || (i % 400 == 0))

3. 逻辑判断——针对 if-else 分析

        所有程序在码码前,都应该在大脑内建立一个初步的逻辑判断流程图。
        在 if-else 语句中,尤其需要注意判断的包含关系:即应该先判断较为宽松的条件,后判断较为严格的条件。梳理思路,可以得到如下流程图:

        当然,如果存在梳理困难的情况,我们可以借助韦恩图来帮助我们判断包含关系

        首先可以对于年份被4整除进行排除,如果年份无法被4整除,那么直接可以判断不是闰年(图中浅天蓝色外围)。若被4整除了,我们讨论的范围就进入的4倍数的区域,这个区域内要额外考虑100倍数问题(进入浅黄色区域)。
        这里的else if语句不能直接用“余100”判断,因为“余100”直接会包含的浅黄色及其内的肉色全部区域,这样无法分离出内部的“400倍数”。
        因此必须额外判断年份是否被400整除,若可以(进入最内部的肉色区域),就是闰年。
        所以,真正好的if-else if-else语句要正确包含韦恩图最大的范围与最小的范围,并且从if到else过程可以映射为韦恩图的从最大区域到最小区域的过程。

二、代码及测试

        需要说明的是,为了培养良好的代码结构以及代码习惯,我们这里依旧将判断封装为一个函数,即:

    /************************ Is the given year leap?* * @param paraYear The given year.**********************/public static boolean isLeapYear(int paraYear) {if ((paraYear % 4 == 0) && (paraYear % 100 != 0) || (paraYear % 400 == 0)) {return true;} else {return false;} // Of if}// Of isLeapYear/************************ Is the given year leap? Replace the complex condition with a number of if.* * @param paraYear The given year.**********************/public static boolean isLeapYearV2(int paraYear) {if (paraYear % 4 != 0) {return false;} else if (paraYear % 400 == 0) {return true;} else if (paraYear % 100 == 0) {return false;} else {return true;} // Of if}// Of isLeapYearV2

        整体代码如下:

package basic;/*** The usage of sth.** @author: Changyang Hu joe03@foxmail.com* @date created: 2025-05-06*/
public class isLeapYear {/************************ The entrance of the program.* * @param args Not used now.**********************/public static void main(String args[]) {// Test isLeapYearint tempYear = 2021;System.out.print("" + tempYear + " is ");if (!isLeapYear(tempYear)) {System.out.print("NOT ");} // Of ifSystem.out.println("a leap year.");tempYear = 2000;System.out.print("" + tempYear + " is ");if (!isLeapYear(tempYear)) {System.out.print("NOT ");} // Of ifSystem.out.println("a leap year.");tempYear = 2100;System.out.print("" + tempYear + " is ");if (!isLeapYear(tempYear)) {System.out.print("NOT ");} // Of ifSystem.out.println("a leap year.");tempYear = 2004;System.out.print("" + tempYear + " is ");if (!isLeapYear(tempYear)) {System.out.print("NOT ");} // Of ifSystem.out.println("a leap year.");// Test isLeapYearV2System.out.println("Now use the second version.");tempYear = 2021;System.out.print("" + tempYear + " is ");if (!isLeapYearV2(tempYear)) {System.out.print("NOT ");} // Of ifSystem.out.println("a leap year.");tempYear = 2000;System.out.print("" + tempYear + " is ");if (!isLeapYearV2(tempYear)) {System.out.print("NOT ");} // Of ifSystem.out.println("a leap year.");tempYear = 2100;System.out.print("" + tempYear + " is ");if (!isLeapYearV2(tempYear)) {System.out.print("NOT ");} // Of ifSystem.out.println("a leap year.");tempYear = 2004;System.out.print("" + tempYear + " is ");if (!isLeapYearV2(tempYear)) {System.out.print("NOT ");} // Of ifSystem.out.println("a leap year.");}// Of main/************************ Is the given year leap?* * @param paraYear The given year.**********************/public static boolean isLeapYear(int paraYear) {if ((paraYear % 4 == 0) && (paraYear % 100 != 0) || (paraYear % 400 == 0)) {return true;} else {return false;} // Of if}// Of isLeapYear/************************ Is the given year leap? Replace the complex condition with a number of if.* * @param paraYear The given year.**********************/public static boolean isLeapYearV2(int paraYear) {if (paraYear % 4 != 0) {return false;} else if (paraYear % 400 == 0) {return true;} else if (paraYear % 100 == 0) {return false;} else {return true;} // Of if}// Of isLeapYearV2}// Of class LeapYear

        运行结果如下:


小结

        闰年计算是计算机语言关于条件语句与逻辑学习的典型案例,从中无论是初学者还是后来学习的人都应当深深体会程序语言逻辑的合理性已经对于问题的基本抽象。

        虽然这是个非常基础的计算机问题,但是以小见大,其中对于问题的抽象能力以及建立正确判断逻辑的能力是贯通始终的。从最简单的练习开始打牢基础,才能在之后的学习生涯中游刃有余的处理更加复杂的问题。

http://www.dtcms.com/wzjs/177963.html

相关文章:

  • 徐州手机网站建设制作百度快照客服电话
  • 网站建设自学网百度指数app
  • 查询企业信息的网站关键词排名优化易下拉霸屏
  • 做兼职有哪些靠谱的网站有哪些关键词优化公司推荐
  • 怎么自己做网站链接谷歌排名推广
  • 软件推广平台有哪些?哪个比较好推广排名seo
  • 龙华做网站 熊掌号seo排名软件价格
  • 帝国cms 关闭网站百度收录申请入口
  • 禁用 wordpress 自带 jqueryseo兼职外包
  • 免费制作软件app的网站电商关键词seo排名
  • 模板网站系统找百度
  • css对网站页面的影响青岛网站建设
  • 做网站销售电销好做吗精准引流推广公司
  • 网站建设的素材处理方式如何制作链接推广
  • 常州网站关键词百度竞价开户哪家好
  • fancy wordpress郑州百度推广seo
  • 咨询公司网站设计网站服务器速度对seo有什么影响
  • 做的好的音乐网站的特点第三方网络营销平台有哪些
  • 手机网站翻译成中文网络营销的目的是什么
  • 企业没有网站怎么对外做公示2023年国家免费技能培训
  • 网站制作动态转静态怎么做地推公司
  • 做网站比较好的企业百度商城购物
  • 怎么做外国网站株洲最新今日头条
  • wordpress 免费 ssl网络优化
  • 网上做任务赚钱的网站有哪些百度客服人工电话
  • 网站制作公司员工域名注册入口
  • 亚马逊网站建设评述网上接单平台有哪些
  • dz网站如何做301搜索引擎营销广告
  • 怎么检测网站是否安全百度一下电脑版
  • 网站建设公司gzzhixun谷歌seo价格