Програма Котліна для перевірки високосного року

У цій програмі ви навчитеся перевіряти, чи є даний рік високосним чи ні в Котліні. Це перевіряється за допомогою операторів 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Вираз працює як:

  • Коли рік ділиться на 4
    • Вводиться інший whenвираз, який перевіряє, чи рік ділиться на 100
      • Якщо так, він знову перевіряє, чи рік ділиться на 400 чи ні, і повертає trueабоfalse
    • Якщо його не поділити на 100, рік не є столітнім роком (закінчується 00) і повертається true
  • Якщо рік не ділиться на 4, він повертається false

Залежно від величини стрибка, він друкує результат, використовуючи вбудований, якщо не так.

Цікаві статті...