Program Kotlin do sprawdzenia roku przestępnego

W tym programie nauczysz się sprawdzać, czy dany rok jest rokiem przestępnym w Kotlinie. Jest to sprawdzane za pomocą instrukcji if else i instrukcji when.

Rok przestępny jest dokładnie podzielny przez 4, z wyjątkiem lat stuleci (lata kończące się na 00). Rok stulecia jest rokiem przestępnym tylko wtedy, gdy można go całkowicie podzielić przez 400.

Przykład 1: Program Kotlin do sprawdzania roku przestępnego przy użyciu instrukcji 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 uruchomieniu programu wynik będzie następujący:

 Rok 1900 nie jest rokiem przestępnym.

W powyższym programie podany rok 1900 jest przechowywany w zmiennej roku.

  • Ponieważ rok 1900 jest podzielny przez 4 i jest również rokiem stulecia (kończącym się na 00), w przypadku roku przestępnego można go podzielić przez 400. Ponieważ nie można jej podzielić przez 400, rok 1900 nie jest rokiem przestępnym.
  • Ale jeśli zmienimy rok na 2000, jest on podzielny przez 4, jest rokiem stulecia i jest również podzielny przez 400. Tak więc rok 2000 jest rokiem przestępnym.
  • Podobnie, jeśli zmienimy rok na 2012, jest on podzielny przez 4 i nie jest rokiem stulecia, więc rok 2012 jest rokiem przestępnym. Nie musimy sprawdzać, czy rok 2012 jest podzielny przez 400, czy nie.

Oto odpowiednik kodu w Javie: Program w języku Java do sprawdzenia roku przestępnego

Przykład 2: Program Kotlin do sprawdzania roku przestępnego przy użyciu wyrażenia 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 uruchomieniu programu wynik będzie:

 Rok 2012 jest rokiem przestępnym.

W powyższym programie, zamiast używać instrukcji if else, użyliśmy wyrażenia when.

whenWyrażenie pracuje jako:

  • Kiedy rok jest podzielny przez 4
    • whenWprowadzane jest inne wyrażenie, które sprawdza, czy rok jest podzielny przez 100
      • Jeśli tak, ponownie sprawdza, czy rok można podzielić przez 400, czy nie, i zwraca truelubfalse
    • Jeśli nie można go podzielić przez 100, rok nie jest stuleciem (kończącym się na 00) i zwraca true
  • Jeśli rok nie jest podzielny przez 4, zwraca false

Opierając się na wartości leap, drukuje wynik przy użyciu inline if else.

Interesujące artykuły...