U ovom ćete programu naučiti provjeriti je li u Kotlinu određena godina prijestupna ili nije. To se provjerava pomoću naredbe if else i naredbe when.
Prestupna godina točno se dijeli s 4, osim s stoljećima (godine koje završavaju s 00). Stoljetna godina je prijestupna samo ako je savršeno djeljiva sa 400.
Primjer 1: Kotlinov program za provjeru prijestupne godine pomoću izjave 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.") )
Kada pokrenete program, izlaz će biti:
1900. nije prijestupna godina.
U gore navedenom programu, dana 1900. pohranjena je u promjenljivoj godini.
- Budući da se 1900. dijeli sa 4, a ujedno je i stoljeće (završava s 00), dijeli se s 400 za prijestupnu godinu. Budući da nije djeljivo s 400, 1900. nije prijestupna godina.
- Ali, ako promijenimo godinu u 2000., ona je djeljiva sa 4, stoljećima je i dijeli se sa 400. Dakle, 2000. je prijestupna godina.
- Isto tako, ako godinu promijenimo u 2012., ona je djeljiva sa 4 i nije stoljeće, pa je 2012. prijestupna. Ne trebamo provjeravati je li 2012. djeljiva sa 400 ili nije.
Evo ekvivalentnog Java koda: Java program za provjeru prijestupne godine
Primjer 2: Kotlinov program za provjeru prijestupne godine pomoću izraza
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.") )
Pri pokretanju programa, izlaz će biti:
2012. je prestupna godina.
U gornjem programu, umjesto da koristimo if else naredbu, koristili smo izraz if.
when
Izraz radi kao:
- Kada je godina djeljiva sa 4
- Unosi se drugi
when
izraz koji provjerava je li godina djeljiva sa 100- Ako je odgovor da, ponovno se provjerava je li godina djeljiva na 400 ili ne i vraća se
true
ilifalse
- Ako je odgovor da, ponovno se provjerava je li godina djeljiva na 400 ili ne i vraća se
- Ako se ne podijeli sa 100, godina nije stoljeće (završava s 00) i vraća se
true
- Unosi se drugi
- Ako godina nije djeljiva sa 4, vraća se
false
Na temelju vrijednosti skoka, ispisuje izlaz koristeći ugrađeni tekst, ako je drugačije.