在此程序中,您將學(xué)習(xí)在Kotlin中檢查給定年份是否為閏年。使用if else語句和when語句進(jìn)行檢查。
閏年可以被4整除,但以00結(jié)尾的世紀(jì)年除外。只有在能被400整除的情況下,世紀(jì)年才是閏年
fun main(args: Array<String>) {
val year = 1900
var leap = false
if (year % 4 == 0) {
if (year % 100 == 0) {
//year 能被400整除,因此是閏年
leap = year % 400 == 0
} else
leap = true
} else
leap = false
println(if (leap) "$year 是閏年." else "$year 不是閏年.")
}運(yùn)行該程序時,輸出為:
1900 不是閏年.
在上述程序中,給定年份1900存儲在變量 year 中。
因?yàn)?900年可以被4整除,也是一個世紀(jì)年(以00結(jié)尾),而閏年是可以被400整除。因?yàn)?900不能被400整除,所以1900年不是閏年。
但是,如果我們更改year為2000,則它可以被4整除,是一個世紀(jì)年份,也可以被400整除。因此,2000是閏年。
同樣,如果我們將年份更改為2012,則該年份可以被4整除,并且不是世紀(jì)年份,因此2012是閏年。 我們不需要再檢查2012年是否可以被400整除。
以下是等效的Java代碼:檢查閏年的Java程序
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 不是閏年.")
}運(yùn)行該程序時,輸出為:
2012 是閏年.
在上面的程序中,我們使用了when表達(dá)式,而不是使用if else語句。
when表達(dá)式的工作方式如下:
當(dāng)年(year)可被 4 整除時:
如果能被4整除,則再次檢查是否year可被400整除,然后返回true 或 false
when輸入另一個表達(dá)式,檢查 year 是否可以被100整除
如果不能除以100,則 year 不是一個世紀(jì)年(以00結(jié)尾),然后返回 true
如果 year 不能被4整除,則返回 false
根據(jù)leap的值,它使用內(nèi)聯(lián)if else打印輸出。