Программа Kotlin для проверки високосного года

В этой программе вы научитесь проверять, является ли данный год високосным в Котлине. Это проверяется с помощью операторов if else и when.

Високосный год делится на 4, за исключением столетий (годы, оканчивающиеся на 00). Вековой год считается високосным, только если он делится на 400.

Пример 1: Программа Kotlin для проверки високосного года с использованием оператора if else

 fun main(args: Array) ( 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 год не високосный.

В приведенной выше программе указанный 1900 год хранится в переменном году.

  • Так как 1900 делится на 4 и также является годом столетия (оканчивается на 00), то високосный год делится на 400. Так как он не делится на 400, 1900 год не високосный.
  • Но если мы изменим год на 2000, он будет делиться на 4, это вековой год, а также делиться на 400. Итак, 2000 - високосный год.
  • Аналогичным образом, если мы изменим год на 2012, он будет делиться на 4 и не будет годом столетия, поэтому 2012 год будет високосным. Нам не нужно проверять, делится ли 2012 на 400 или нет.

Вот эквивалентный код Java: Программа Java для проверки високосного года

Пример 2: Программа Kotlin для проверки високосного года с использованием выражения when

 fun main(args: Array) ( 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 год - високосный.

В приведенной выше программе вместо использования оператора if else мы использовали выражение when.

whenВыражение работает как:

  • Когда год делится на 4
    • Вводится другое whenвыражение, которое проверяет, делится ли год на 100.
      • Если да, он снова проверяет, делится ли год на 400 или нет, и возвращает trueилиfalse
    • Если не делится на 100, год не является годом столетия (оканчивается на 00) и возвращается true
  • Если год не делится на 4, возвращается false

В зависимости от значения leap он печатает вывод, используя встроенный if else.

Интересные статьи...