Програма 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 за проверка на високосна година, използвайки когато израз

 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

Въз основа на стойността на скок, той отпечатва изхода, използвайки вграден, ако не.

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