English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Verificação de ano bissexto em Kotlin

Coleção Completa de Exemplos em Kotlin

Neste programa, você aprenderá a verificar se um ano dado é ano bissexto em Kotlin. Verifique usando if else e when.

os anos bissextos podem ser4divisível por inteiro, mas os anos centenários terminando em 00, exceto quando podem ser400 divisível por inteiro, os anos centenários são anos bissextos

Exemplo1:Programa Kotlin com if else para verificar se é ano bissexto

fun main(args: Array<String>) {
    val year = 1900
    var leap = false
    if (year % 4 == 0) {
        if (year % 100 == 0) {
            //year pode ser400 divisível por inteiro, portanto é ano bissexto
            leap = year % 400 == 0
        } else
            leap = true
    } else
        leap = false
    println(if (leap) "$year é ano bissexto." else "$year não é ano bissexto.")
}

Ao executar o programa, a saída é:

1900 não é ano bissexto.

No programa acima, o ano dado19000 armazenado na variável year.

  • porque19000 o ano pode ser4divisível por inteiro, também é um ano centenário (terminando em 00), e os anos bissextos podem ser400 divisível por inteiro. Porque1900 não pode ser400 divisível por inteiro, então1900 não é ano bissexto.

  • mas, se alterarmos year para2000, então ele pode ser4divisível por inteiro, é um ano centenário e também pode ser400 divisível por inteiro. Portanto,2000 é ano bissexto.

  • também, se alterarmos o ano para2012então o ano pode ser4divisível por inteiro, e não é um ano centenário, então2012é ano bissexto. Não precisamos verificar2012O ano pode ser dividido por400 divisível por inteiro.

Aqui está o código Java equivalente:Programa Java para verificar se é ano bissexto

Exemplo2:O programa Kotlin usa a expressão when para verificar se é ano bissexto

fun main(args: Array<String>) {
    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 é ano bissexto." else "$year não é ano bissexto.")
}

Ao executar o programa, a saída é:

2012 é um ano bissexto.

No programa acima, usamos a expressão when, em vez de usar sentenças if else.

A maneira como a expressão when funciona é a seguinte:

  • Se year puder ser 4 ao dividir por

    • Se puder ser4Se houver divisão exata, verifica novamente se year pode ser400 divisível, então retorna true ou false

    • when entrada outra expressão, verifica se year pode ser100 divisível

    • Se não puder ser dividido por100, então year não é um ano do século (terminando em 00), então retorna true

  • Se year não puder ser4Se houver divisão exata, retorna false

De acordo com o valor de leap, ele imprime a saída usando if else inline.

Coleção Completa de Exemplos em Kotlin