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