Program Kotlin ke kontrole přestupného roku

V tomto programu se naučíte zkontrolovat, zda je daný rok přestupným rokem v Kotlině. To se kontroluje pomocí příkazu if else a příkazu when.

Přestupný rok je přesně dělitelný čtyřmi, s výjimkou let století (roky končící 00). Rok století je přestupným rokem, pouze pokud je dokonale dělitelný číslem 400.

Příklad 1: Program Kotlin ke kontrole přestupného roku pomocí pří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.") )

Když spustíte program, výstup bude:

 Rok 1900 není přestupným rokem.

Ve výše uvedeném programu je daný rok 1900 uložen v proměnném roce.

  • Vzhledem k tomu, že rok 1900 je dělitelný čtyřmi a je také stoletým rokem (končící číslem 00), je dělitelný 400 pro přestupný rok. Protože to není dělitelné 400, 1900 není přestupný rok.
  • Pokud však změníme rok na rok 2000, je dělitelný čtyřmi, je rokem století a je také dělitelný 400. Rok 2000 je tedy přestupným rokem.
  • Stejně tak, pokud změníme rok na rok 2012, je to dělitelné 4 a není to rok století, takže rok 2012 přestupný. Nemusíme kontrolovat, zda je rok 2012 dělitelný číslem 400 nebo ne.

Zde je ekvivalentní kód Java: Program Java ke kontrole přestupného roku

Příklad 2: Program Kotlin ke kontrole přestupného roku pomocí 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.") )

Při spuštění programu bude výstup:

 Rok 2012 je přestupným rokem.

Ve výše uvedeném programu jsme místo použití příkazu if else použili výraz when.

whenVýraz pracuje jako:

  • Když je rok dělitelný 4
    • whenJe zadán další výraz, který kontroluje, zda je rok dělitelný 100
      • Pokud ano, znovu zkontroluje, zda je rok dělitelný 400 nebo ne, a vrátí truenebofalse
    • Pokud není dělitelný 100, rok není rokem století (končící 00) a vrátí se true
  • Pokud rok není dělitelný 4, vrátí se false

Na základě hodnoty skoku vytiskne výstup pomocí vloženého řádku, pokud existuje.

Zajímavé články...