世纪年:能整除 100 的年份
普通年:不能整除 100 的年份
闰年:一年有 366 天,二月有 29 天
平年:一年有 365 天,二月有 28 天
对于世纪年:能整除 400 为闰年,否则为平年
对于普通年:能整除 4 为闰年,否则为平年
以下是代码实现:
1、普通两层 if 嵌套语句:
最为接近伪代码的逻辑,简单易懂
1 if (year % 100 == 0) {
2 if (year % 400 == 0) {
3 System.out.println("世纪年 闰年");
4 } else {
5 System.out.println("世纪年 平年");
6 }
7 } else{
8 if (year % 4 == 0) {
9 System.out.println("普通年 闰年");
10 } else {
11 System.out.println("普通年 平年");
12 }
13 }
2、IDEA 提示修改后的 if 嵌套 以及 if ... else ... if 语句:
少用了一层嵌套,在不必要嵌套的地方去除嵌套,采用 else ... if 多分支语句
1 if (year % 100 == 0) {
2 if (year % 400 == 0) {
3 System.out.println("世纪年 闰年");
4 } else {
5 System.out.println("世纪年 平年");
6 }
7 } else if (year % 4 == 0) {
8 System.out.println("普通年 闰年");
9 } else {
10 System.out.println("普通年 平年");
11 }
3、使用三目判断运算符精简代码量后的语句:
单条版
1 System.out.println(year % 100 == 0 ? (year % 400 == 0 ? "世纪年 闰年" : "世纪年 平年") : (year % 4 == 0 ? "世纪年 闰年" : "世纪年 平年"));
缩进版
1 System.out.println(
2 year % 100 == 0 ?
3 (year % 400 == 0 ? "世纪年 闰年" : "世纪年 平年") :
4 (year % 4 == 0 ? "世纪年 闰年" : "世纪年 平年")
5 );
注明:内语句的 () 不必要,是为了方便理解而加上的