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整除,并返回true
或false
如果不能被100整除,year
不是世纪年份(以00结尾),并返回 true
如果 year
不能被4整除,则返回 false
根据 leap
的值,它使用内联的if else打印输出。