Kotlin 判断闰年的程序

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

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

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.")
}

运行程序后,输出将是

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 程序检查闰年


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

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.")
}

运行程序时,输出将是

2012 is a leap year.

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

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

  • year 能被 4 整除时
    • 输入另一个 when 表达式,检查 year 是否能被 100 整除
      • 如果可以,它会再次检查 year 是否能被 400 整除,并返回 truefalse
    • 如果不能被 100 整除,year 就不是世纪年(以 00 结尾),并返回 true
  • 如果 year 不能被 4 整除,则返回 false

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

你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战