У овом програму ћете научити да проверите да ли је дата година преступна или не у Котлину. Ово се проверава помоћу наредбе иф елсе и наредбе вхен.
Преступна година је тачно дељива са 4, осим са вековима (године које се завршавају са 00). Вековна година је преступна само ако је савршено дељива са 400.
Пример 1: Котлинов програм за проверу преступне године користећи иф елсе изјаву
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 или не.
Ево еквивалентног Јава кода: Јава програм за проверу преступне године
Пример 2: Котлин програм за проверу преступне године користећи израз
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. је преступна година.
У горњем програму, уместо да користимо иф елсе израз, користили смо израз вхен.
when
Израз ради као:
- Када је година дељива са 4
- Уноси се други
when
израз који проверава да ли је година дељива са 100- Ако је одговор да, поново се проверава да ли се година дели на 400 или не и враћа се
true
илиfalse
- Ако је одговор да, поново се проверава да ли се година дели на 400 или не и враћа се
- Ако није дељива са 100, година није вековна година (завршава се са 00) и враћа се
true
- Уноси се други
- Ако година није дељива са 4, враћа се
false
На основу вредности скока, исписује излаз користећи уграђени, ако је другачије.