ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、视频、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# Kotlin 程序:检查闰年 > 原文: [https://www.programiz.com/kotlin-programming/examples/leap-year](https://www.programiz.com/kotlin-programming/examples/leap-year) #### 在此程序中,您将学习在 Kotlin 中检查给定年份是否为闰年。 使用`if else`语句和`when`语句进行检查。 除世纪年份(以 00 结尾的年份)外,闰年可精确地除以 4。 只有将世纪完全除以 400,世纪年才是闰年。 ## 示例 1:使用`if else`语句检查闰年 ```kt fun main(args: Array<String>) { val year = 1900 var leap = false if (year % 4 == 0) { if (year % 100 == 0) { // year is divisible by 400, hence the year is a leap year leap = year % 400 == 0 } else leap = true } else leap = false println(if (leap) "$year is a leap year." else "$year is not a leap year.") } ``` 运行该程序时,输出为: ```kt 1900 is not a leap year. ``` 在上述程序中,给定年份 1900 存储在变量`year`中。 * 由于 1900 除以 4 也是一个世纪年(以 00 结尾),因此,年已除以 400。 由于不能被 400 整除,因此 1900 年不是闰年。 * 但是,如果我们将年份更改为 2000,则它可以被 4 整除,是世纪年份,也可以被 400 整除。因此,2000 是闰年。 * 同样,如果我们将年份更改为 2012,则该年份可以被 4 整除,并且不是世纪年份,因此 2012 是闰年。 我们不需要检查 2012 年是否可以被 400 整除。 以下是等效的 Java 代码:[检查闰年的 Java 程序](/java-programming/examples/leap-year) * * * ## 示例 2:使用`when`表达式来检查闰年 ```kt fun main(args: Array<String>) { val year = 2012 var leap = false leap = when { year % 4 == 0 -> { when { year % 100 == 0 -> year % 400 == 0 else -> true } } else -> false } println(if (leap) "$year is a leap year." else "$year is not a leap year.") } ``` 运行程序时,输出为: ```kt 2012 is a leap year. ``` 在上面的程序中,我们使用了`when`表达式,而不是使用`if else`语句。 `when`表达式的工作方式如下: * 当`year`被 4 整除时 * 输入另一个`when`表达式,该表达式检查`year`是否可被 100 整除 * 如果是,则再次检查`year`是否除以 400,然后返回`true`或`false` * 如果不能除以 100,则`year`不是世纪年(以 00 结尾),并返回`true` * 如果`year`不能被 4 整除,则返回`false` 基于`leap`的值,如果没有,它将使用*内联打印输出*。