Programma Kotlin per controllare l'anno bisestile

In questo programma imparerai a verificare se l'anno in questione è bisestile o meno a Kotlin. Questo viene verificato utilizzando un'istruzione if else e un'istruzione when.

Un anno bisestile è esattamente divisibile per 4 ad eccezione degli anni del secolo (anni che terminano con 00). L'anno del secolo è un anno bisestile solo se è perfettamente divisibile per 400.

Esempio 1: programma Kotlin per controllare un anno bisestile utilizzando l'istruzione 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.") )

Quando esegui il programma, l'output sarà:

 Il 1900 non è un anno bisestile.

Nel programma precedente, l'anno 1900 viene memorizzato nell'anno variabile.

  • Dal momento che 1900 è divisibile per 4 ed è anche un anno secolo (che termina con 00), è divisibile per 400 per un anno bisestile. Poiché non è divisibile per 400, 1900 non è un anno bisestile.
  • Ma, se cambiamo l'anno in 2000, è divisibile per 4, è un anno centenario ed è anche divisibile per 400. Quindi, 2000 è un anno bisestile.
  • Allo stesso modo, se cambiamo l'anno in 2012, è divisibile per 4 e non è un anno di secolo, quindi il 2012 è un anno bisestile. Non è necessario verificare se il 2012 è divisibile per 400 o meno.

Ecco il codice Java equivalente: Programma Java per controllare l'anno bisestile

Esempio 2: programma Kotlin per controllare l'anno bisestile utilizzando l'espressione 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.") )

Quando si esegue il programma, l'output sarà:

 Il 2012 è un anno bisestile.

Nel programma precedente, invece di usare un'istruzione if else, abbiamo usato un'espressione when.

L' whenespressione funziona come:

  • Quando l'anno è divisibile per 4
    • whenViene inserita un'altra espressione che controlla se l'anno è divisibile per 100
      • In caso affermativo, controlla nuovamente se l'anno è divisibile per 400 o meno e restituisce trueofalse
    • Se non è divisibile per 100, year non è un anno di secolo (che termina con 00) e restituisce true
  • Se l'anno non è divisibile per 4, restituisce false

In base al valore di leap, stampa l'output utilizzando un inline se altrimenti.

Articoli interessanti...