int year = 2020; if(year % 100 == 0) { if(year % 400 == 0) { System.out.println(year + "是闰年!"); }else { System.out.println(year + "不是闰年!"); } }else { if(year % 4 == 0) { System.out.println(year + "是闰年!"); }else { System.out.println(year + "不是闰年!"); } }这个代码正确吗
时间: 2024-01-07 10:03:09 浏览: 24
这段代码是判断一个年份是否为闰年的代码,逻辑上是正确的。但是可以进行一些简化和优化。可以写成:
```
int year = 2020;
if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
System.out.println(year + "是闰年!");
} else {
System.out.println(year + "不是闰年!");
}
```
这样可以避免嵌套的 if 语句,代码更加简洁易读。
相关问题
int year = 2024; if(year % 4 == 0 && year % 100 != 0 || year % 400 == 0 ) { System.out.println(year + "年是闰年"); }else { System.out.println(year + "年是平年"); }这个判断闰年的代码有没有别的优化
这个判断闰年的代码已经很简洁了,不过你可以使用Java 8引入的新特性来进一步简化代码。Java 8引入了一个新的类Year来处理闰年的计算,使用该类可以将代码简化为以下形式:
```
int year = 2024;
if (Year.of(year).isLeap()) {
System.out.println(year + "年是闰年");
} else {
System.out.println(year + "年是平年");
}
```
该代码使用了Year.of方法将年份转换为Year对象,然后使用isLeap方法来判断该年份是否为闰年。这种方式更加直观和简洁,并且可以提高代码的可读性。
year % 4 == 0 && year % 100 != 0 || year % 400 == 0
这是一个逻辑表达式,用于判断一个年份是否为闰年。其中,`%` 表示取模(取余)运算符。
这个表达式的含义是:当一个年份能够被 4 整除,但不能被 100 整除,或者能够被 400 整除,那么这个年份就是闰年。
可以分解成两个条件来理解:
- 当年份能够被 4 整除,但不能被 100 整除时,是闰年;
- 当年份能够被 400 整除时,也是闰年。
例如,2008 年能够被 4 整除且不能被 100 整除,所以是闰年;而 1900 年能够被 4 整除但能够被 100 整除,所以不是闰年;而 2000 年能够被 400 整除,所以是闰年。
你可以用这个表达式来判断一个年份是否为闰年,例如:
```java
int year = 2022;
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
System.out.println(year + "年是闰年");
} else {
System.out.println(year + "年不是闰年");
}
```
上面的代码会输出 `2022年不是闰年`,因为 2022 年不是闰年。