在此程序中,您将学习在Kotlin中检查给定年份是否为闰年。使用if else语句和when语句进行检查。
闰年可以被4整除,但以00结尾的世纪年除外。只有在能被400整除的情况下,世纪年才是闰年
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 不是闰年.") }
运行该程序时,输出为:
1900 不是闰年.
在上述程序中,给定年份1900存储在变量 year 中。
因为1900年可以被4整除,也是一个世纪年(以00结尾),而闰年是可以被400整除。因为1900不能被400整除,所以1900年不是闰年。
但是,如果我们更改year为2000,则它可以被4整除,是一个世纪年份,也可以被400整除。因此,2000是闰年。
同样,如果我们将年份更改为2012,则该年份可以被4整除,并且不是世纪年份,因此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 不是闰年.") }
运行该程序时,输出为:
2012 是闰年.
在上面的程序中,我们使用了when表达式,而不是使用if else语句。
when表达式的工作方式如下:
当年(year)可被 4 整除时:
如果能被4整除,则再次检查是否year可被400整除,然后返回true 或 false
when输入另一个表达式,检查 year 是否可以被100整除
如果不能除以100,则 year 不是一个世纪年(以00结尾),然后返回 true
如果 year 不能被4整除,则返回 false
根据leap的值,它使用内联if else打印输出。