I dette program lærer du at kontrollere, om det givne år er et skudår eller ikke i Kotlin. Dette kontrolleres ved hjælp af en if-sætning og en når-sætning.
Et skudår er nøjagtigt deleligt med 4 bortset fra århundreders år (år, der slutter med 00). Århundredet er kun et skudår, hvis det er helt deleligt med 400.
Eksempel 1: Kotlin-program til kontrol af et skudår ved hjælp af hvis ellers udsagn
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.") )
Når du kører programmet, vil output være:
1900 er ikke et skudår.
I ovenstående program er givet år 1900 lagret i det variable år.
- Siden 1900 er fordelt med 4 og er også et århundrede år (slutter med 00), har det været fordelt med 400 i et skudår. Da det ikke kan deles med 400, er 1900 ikke et skudår.
- Men hvis vi ændrer året til 2000, er det deleligt med 4, er et århundredes år og kan også deles med 400. 2000 er altså et skudår.
- Ligeledes Hvis vi ændrer året til 2012, kan det deles med 4 og er ikke et århundredes år, så 2012 er et skudår. Vi behøver ikke kontrollere, om 2012 kan deles med 400 eller ej.
Her er den tilsvarende Java-kode: Java-program til kontrol af skudår
Eksempel 2: Kotlin-program til kontrol af skudår ved hjælp af når udtryk
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.") )
Når programmet køres, vil output være:
2012 er et skudår.
I det ovennævnte program har vi brugt et når-udtryk i stedet for at bruge en hvis ellers-sætning.
Den when
udtryk fungerer som:
- Når året kan deles med 4
- Der
when
indtastes et andet udtryk, der kontrollerer, om året kan deles med 100- Hvis ja, kontrollerer den igen, om året er delt med 400 eller ej, og returnerer
true
ellerfalse
- Hvis ja, kontrollerer den igen, om året er delt med 400 eller ej, og returnerer
- Hvis det ikke kan deles med 100, er året ikke et århundredes år (slutter med 00) og vender tilbage
true
- Der
- Hvis året ikke kan deles med 4, vender det tilbage
false
Baseret på værdien af springet, udskriver det output ved hjælp af en inline, hvis ikke.