Skip to content

Latest commit

 

History

History
84 lines (59 loc) · 2.64 KB

52.md

File metadata and controls

84 lines (59 loc) · 2.64 KB

Kotlin 程序:检查闰年

原文: https://www.programiz.com/kotlin-programming/examples/leap-year

在此程序中,您将学习在 Kotlin 中检查给定年份是否为闰年。 使用if else语句和when语句进行检查。

除世纪年份(以 00 结尾的年份)外,闰年可精确地除以 4。 只有将世纪完全除以 400,世纪年才是闰年。

示例 1:使用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:使用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的值,如果没有,它将使用内联打印输出