180415_判断闰年的思路及三种 java 实现
世纪年:能整除 100 的年份
普通年:不能整除 100 的年份
闰年:一年有 366 天,二月有 29 天
平年:一年有 365 天,二月有 28 天
对于世纪年:能整除 400 为闰年,否则为平年
对于普通年:能整除 4 为闰年,否则为平年
以下是代码实现:
1、普通两层 if 嵌套语句:
最为接近伪代码的逻辑,简单易懂
if (year % 100 == 0) {
if (year % 400 == 0) {
System.out.println("世纪年 闰年");
} else {
System.out.println("世纪年 平年");
}
} else{
if (year % 4 == 0) {
System.out.println("普通年 闰年");
} else {
System.out.println("普通年 平年");
}
}
2、IDEA 提示修改后的 if 嵌套 以及 if ... else ... if 语句:
少用了一层嵌套,在不必要嵌套的地方去除嵌套,采用 else ... if 多分支语句
if (year % 100 == 0) {
if (year % 400 == 0) {
System.out.println("世纪年 闰年");
} else {
System.out.println("世纪年 平年");
}
} else if (year % 4 == 0) {
System.out.println("普通年 闰年");
} else {
System.out.println("普通年 平年");
}
3、使用三目判断运算符精简代码量后的语句:
单条版
System.out.println(year % 100 == 0 ? (year % 400 == 0 ? "世纪年 闰年" : "世纪年 平年") : (year % 4 == 0 ? "世纪年 闰年" : "世纪年 平年"));
缩进版
System.out.println(
year % 100 == 0 ?
(year % 400 == 0 ? "世纪年 闰年" : "世纪年 平年") :
(year % 4 == 0 ? "世纪年 闰年" : "世纪年 平年")
);
注明:内语句的 () 不必要,是为了方便理解而加上的
180415_判断闰年的思路及三种 java 实现的更多相关文章
- 三种java 去掉字符串中的重复字符函数
三种java 去掉字符串中的重复字符函数 public static void main(string[] args) { system.out.println(removerepeatedchar( ...
- Python判断文件是否存在的三种方法
通常在读写文件之前,需要判断文件或目录是否存在,不然某些处理方法可能会使程序出错.所以最好在做任何操作之前,先判断文件是否存在. 这里将介绍三种判断文件或文件夹是否存在的方法,分别使用os模块.Try ...
- Python判断文件是否存在的三种方法【转】
转:http://www.cnblogs.com/jhao/p/7243043.html 通常在读写文件之前,需要判断文件或目录是否存在,不然某些处理方法可能会使程序出错.所以最好在做任何操作之前,先 ...
- Python 判断文件是否存在的三种方法
通常在读写文件之前,需要判断文件或目录是否存在,不然某些处理方法可能会使程序出错.所以最好在做任何操作之前,先判断文件是否存在. 这里将介绍三种判断文件或文件夹是否存在的方法,分别使用os模块.Try ...
- js如何判断一个对象是不是Array? 三种方法总有一种可以帮上忙
转载:http://www.nowamagic.net/librarys/veda/detail/1250 在开发中,我们经常需要判断某个对象是否为数组类型,在Js中检测对象类型的常见方法都有哪些呢? ...
- 详解三种java实现多线程的方式
java中实现多线程的方法有两种:继承Thread类和实现runnable接口. 1.继承Thread类,重写父类run()方法 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ...
- iOS 判断当前网络状态的三种方法
http://www.cocoachina.com/ios/20171103/21039.html 在项目中,为了好的用户体验,有些场景必须线判断网络状态,然后才能决定改干嘛.比如视频播放,需要线判断 ...
- JQery判断checkbox是否被选三种方式
方法一:if ($("#checkbox-id").get(0).checked) { // do something} 方法二:if($('#checkbox-id').i ...
- msyql判断记录是否存在的三种方法
1. select count(*) from .... 这种方法最常见但是效率比较低,因为它需要扫描所有满足条件的记录 2. select 1 from xxxtable where .... 这种 ...
随机推荐
- QuantLib 金融计算——高级话题之模拟跳扩散过程
目录 QuantLib 金融计算--高级话题之模拟跳扩散过程 跳扩散过程 模拟算法 面临的问题 "脏"的方法 "干净"的方法 实现 示例 参考文献 如果未做特别 ...
- laydata 点击日期闪现
因项目需求需要多个日期,然后点击日期就会出现闪现的情况,导致选择不了日期 html代码 <table class="form"> <tr> <th c ...
- 自动安装zabbix_agent脚本 -- python2
#!/usr/bin/env python # -*- coding: utf-8 -*- import os ZABBIX_SERVER_IP='10.171.100.28' if os.path. ...
- jython实现java运行python代码
Jython是一种完整的语言,而不是一个Java翻译器或仅仅是一个Python编译器,它是一个Python语言在Java中的完全实现.最近的一个项目需要将python代码转换成java实现,所以用了一 ...
- RocketMQ-Filer
一.搭建RocketMQ集群 我搭建的是2-master no slave模式,所以在${rocketmq}/conf/2m-noslave/下的 brokder-*.properties 中添加 f ...
- #pragma的一些用法
1.#pragma message message 参数:Message参数能够在编译信息输出窗口输出相应的信息,这对于源代码的信息控制特别重要,其使用方法为: #pragma message(&qu ...
- R语言运算符
运算符是一个符号,它告诉编译器执行特定的数学或逻辑操作. R语言丰富的内置运算符,并提供以下类型的运算符. 运算符类型 在R编程中有以下类型的运算符 - 算术运算符 关系运算符 逻辑运算符 赋值运算符 ...
- ubuntu 16.04 安装PhpMyAdmin
首先,安装mysql $ sudo apt-get install mysql-server $ sudo apt-get install mysql-client 安装时输出root用户的密码 然后 ...
- java.util.Collection源码分析和深度讲解
写在开头 java.util.Collection 作为Java开发最常用的接口之一,我们经常使用,今天我带大家一起研究一下Collection接口,希望对大家以后的编程以及系统设计能有所帮助,本文所 ...
- [学习笔记] Miller-Rabin质数测试 & Pollard-Rho质因数分解
目录 Miller-Rabin质数测试 & Pollard-Rho质因数分解 Miller-Rabin质数测试 一些依赖的定理 实现以及正确率 Pollard-Rho质因数分解 生日悖论与生日 ...