Kotlin program az ugróév ellenőrzésére

Ebben a programban megtanulja ellenőrizni, hogy az adott év szökőév-e vagy sem Kotlinban. Ezt egy if else utasítással és egy mikor utasítással ellenőrizzük.

A szökőév pontosan osztható 4-vel, kivéve az évszázadokat (00-val végződő évek). Az évszázad csak akkor szökőév, ha tökéletesen osztható 400-mal.

1. példa: Kotlin program az ugróév ellenőrzésére if else utasítással

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

A program futtatásakor a kimenet a következő lesz:

 1900 nem szökőév.

A fenti programban az adott 1900-as évet a változó év tárolja.

  • Mivel 1900 osztható 4-gyel, és szintén egy évszázad (00-val végződik), szökőévben 400-mal osztható. Mivel ez nem osztható 400-mal, 1900 nem szökőév.
  • De ha az évet 2000-re változtatjuk, akkor az osztható 4-gyel, egy évszázados és osztható 400-zal is. Tehát 2000 szökőév.
  • Hasonlóképpen, ha az évet 2012-re változtatjuk, akkor az osztható 4-gyel és nem egy évszázad, tehát 2012 szökőév. Nem kell ellenőriznünk, hogy 2012 osztható-e 400-mal, vagy sem.

Itt található az egyenértékű Java-kód: Java Program to Ugróév ellenőrzése

2. példa: Kotlin program az ugróév ellenőrzéséhez, amikor kifejezést használ

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

A program futtatásakor a kimenet a következő lesz:

 2012 szökőév.

A fenti programban egy if else utasítás helyett egy when kifejezést használtunk.

A whenkifejezés így működik:

  • Amikor az év osztható 4-gyel
    • whenMegadunk egy másik kifejezést, amely ellenőrzi, hogy az év osztható-e 100-mal
      • Ha igen, akkor ismét ellenőrzi, hogy az évben divisble 400, vagy sem, és visszatér true, vagyfalse
    • Ha nem osztható 100-mal, az év nem egy évszázad (00-val végződik), és visszatér true
  • Ha az év nem osztható 4-gyel, akkor visszatér false

Az ugrás értéke alapján inline segítségével nyomtatja ki a kimenetet, ha másképp.

érdekes cikkek...