跳到主要内容

Kotlin 程序:检查闰年

闰年是可以被4整除的年份,但世纪年份(以00结尾的年份)除外。世纪年份只有在能被400整除时才是闰年。

示例1:使用if else语句检查闰年的Kotlin程序

fun main(args: Array<String>) {

val year = 1900
var leap = false

if (year % 4 == 0) {
if (year % 100 == 0) {
// 年份可以被400整除,因此这一年是闰年
leap = year % 400 == 0
} else
leap = true
} else
leap = false

println(if (leap) "$year 是闰年。" else "$year 不是闰年。")
}

当运行该程序时,输出如下:

1900 不是闰年。

在上面的程序中,给定的年份1900存储在变量 year 中。

  • 由于1900可以被4整除,并且也是一个世纪年份(以00结尾),所以它必须被400整除才能是闰年。由于它不能被400整除,因此1900年不是闰年。
  • 但是,如果我们将年份更改为2000年,它可以被4整除,是一个世纪年份,也可以被400整除。所以,2000年是闰年。
  • 同样,如果我们将年份更改为2012年,它可以被4整除,不是世纪年份,所以2012年是闰年。我们不需要检查2012年是否可以被400整除。

以下是等效的Java代码:Java程序:检查闰年

示例2:使用when表达式检查闰年的Kotlin程序

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 是闰年。" else "$year 不是闰年。")
}

运行该程序时,输出如下:

2012 是闰年。

在上面的程序中,我们使用了when表达式,而不是使用if else语句。

when表达式的工作方式如下:

  • year 可以被4整除时
  • 进入另一个when表达式,检查 year 是否可以被100整除
  • 如果是的话,它再次检查 year 是否可以被400整除,并返回 truefalse

如果不能被100整除,year 不是世纪年份(以00结尾),并返回 true

如果 year 不能被4整除,则返回 false

根据 leap 的值,它使用内联的if else打印输出。