Program Kotlin na kontrolu priestupného roku

V tomto programe sa naučíte skontrolovať, či je daný rok priestupným rokom v Kotline. Toto sa kontroluje pomocou príkazu if else a príkazu when.

Prestupný rok je deliteľný presne 4 okrem storočných rokov (roky končiace sa 00). Rok storočia je priestupným rokom, iba ak je úplne deliteľný číslom 400.

Príklad 1: Program Kotlin na kontrolu priestupného roku pomocou príkazu 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.") )

Po spustení programu bude výstup:

 Rok 1900 nie je priestupným rokom.

Vo vyššie uvedenom programe je daný rok 1900 uložený v premennom roku.

  • Pretože rok 1900 je deliteľný 4 a je to tiež storočný rok (končiaci číslom 00), deliteľný je deliteľný 400 pre priestupný rok. Pretože to nie je deliteľné číslom 400, 1900 nie je priestupný rok.
  • Ak však zmeníme rok na rok 2000, je to deliteľné 4, je to storočný rok a je tiež deliteľné 400. Takže rok 2000 je priestupný.
  • Rovnako, ak zmeníme rok na rok 2012, je to deliteľné 4 a nejde o storočný rok, takže rok 2012 je priestupný. Nemusíme kontrolovať, či je rok 2012 deliteľný číslom 400 alebo nie.

Tu je ekvivalentný kód Java: Program Java na kontrolu priestupného roku

Príklad 2: Program Kotlin na kontrolu priestupného roku pomocou výrazu when

 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.") )

Po spustení programu bude výstupom:

 Rok 2012 je priestupný.

Vo vyššie uvedenom programe sme namiesto použitia príkazu if else použili výraz when.

whenVýraz pracuje ako:

  • Keď je rok deliteľný 4
    • whenZadal sa ďalší výraz, ktorý skontroluje, či je rok deliteľný 100
      • Ak áno, znova skontroluje, či je rok deliteľný 400 alebo nie, a vráti truealebofalse
    • Ak nie je deliteľný 100, rok nie je storočný (končí sa 00) a vráti sa true
  • Ak rok nie je deliteľný 4, vráti sa false

Na základe hodnoty skoku vytlačí výstup pomocou vloženého riadku, ak ešte existuje.

Zaujímavé články...