Selles programmis õpite kontrollima, kas antud aasta on Kotlinis liigaasta või mitte. Selle kontrollimiseks kasutatakse lauset if else ja when lauset.
Liigaasta jagub täpselt neljaga, välja arvatud sajandiaastad (aastad, mis lõpevad 00-ga). Sajandiaasta on liigaasta ainult siis, kui see jagub täiuslikult 400-ga.
Näide 1: Kotlini programm hüppeaasta kontrollimiseks, kasutades lauset 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.") )
Programmi käivitamisel on väljund järgmine:
1900 pole liigaasta.
Eespool nimetatud programmis on aasta 1900 salvestatud muutuvasse aastasse.
- Kuna 1900 jaguneb 4-ga ja on samuti sajandiaasta (lõpeb 00-ga), on see hüppeaastaks jagatav 400-ga. Kuna see pole jagatav 400-ga, pole 1900 liigaasta.
- Kuid kui me muudame aasta 2000-ks, on see jagatav 4-ga, on sajandi-aasta ja jagub ka 400-ga. Seega on 2000. aasta liigaasta.
- Samamoodi, kui muudame aasta 2012-ks, jagub see 4-ga ja see ei ole sajandiaasta, seega 2012 on liigaasta. Me ei pea kontrollima, kas 2012. aasta jagub 400-ga või mitte.
Siin on samaväärne Java kood: Java programm hüppeaasta kontrollimiseks
Näide 2: Kotlini programm hüppeaasta kontrollimiseks, kasutades väljendit
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.") )
Programmi käivitamisel on väljund:
2012 on liigaasta.
Ülaltoodud programmis oleme lause if asemel asemel kasutanud avaldist kui.
when
Ekspressiooni töötab:
- Kui aasta jagub 4-ga
when
Sisestatakse veel üks väljend, mis kontrollib, kas aasta on jagatav 100-ga- Kui jah, kontrollib ta uuesti, kas aasta jagub 400-ga või mitte, ja tagastab
true
võifalse
- Kui jah, kontrollib ta uuesti, kas aasta jagub 400-ga või mitte, ja tagastab
- Kui seda ei jagata 100-ga, ei ole aasta sajandiaasta (lõpeb 00-ga) ja tuleb tagasi
true
- Kui aasta ei ole jagatav 4-ga, naaseb see
false
Hüppe väärtuse põhjal prindib see väljundi, kui see on sees.