Como Usar IF, ELSE e WHEN na Programação Kotlin
Aprenda a usar IF, ELSE e WHEN na programação Kotlin com exemplos práticos, explicações para iniciantes e dicas para desenvolver aplicativos Android.
Como Usar IF, ELSE e WHEN na Programação Kotlin
As estruturas if, else e when estão entre os recursos mais importantes da programação Kotlin. Elas permitem que um programa tome decisões, execute diferentes ações conforme determinadas condições e responda de maneira inteligente às informações recebidas.
Para quem está começando a aprender Kotlin, compreender essas estruturas é fundamental para desenvolver aplicativos Android, jogos, sistemas e outros tipos de software.
Neste guia, você aprenderá o que são condições na programação, como utilizar if e else, quando escolher when e como aplicar esses recursos em exemplos práticos, explicados passo a passo.
O que são condições na programação Kotlin?
Na programação, nem sempre um sistema deve executar exatamente as mesmas instruções. Muitas vezes, é necessário verificar uma situação antes de decidir o que fazer.
Imagine um aplicativo que verifica a idade de uma pessoa. Se ela tiver 18 anos ou mais, o sistema poderá informar que é maior de idade. Caso contrário, deverá apresentar uma mensagem diferente.
Esse comportamento é chamado de estrutura condicional.
Em Kotlin, as condições normalmente utilizam operadores de comparação, como:
| Operador | Significado | Exemplo |
|---|---|---|
== | Igual a | idade == 18 |
!= | Diferente de | idade != 18 |
> | Maior que | idade > 18 |
< | Menor que | idade < 18 |
>= | Maior ou igual | idade >= 18 |
<= | Menor ou igual | idade <= 18 |
Esses operadores permitem comparar valores e determinar se uma condição é verdadeira (true) ou falsa (false).
Como utilizar IF na programação Kotlin?
A estrutura if é utilizada quando queremos executar um código somente se determinada condição for verdadeira.
Sua estrutura básica é:
if (condicao) {
// Código executado se a condição for verdadeira
} Vamos entender com um exemplo simples.
Exemplo 1: Verificando a idade
fun main() {
val idade = 20
if (idade >= 18) {
println("Você é maior de idade")
}
} Como funciona esse código?
fun main()é a função principal do programa.val idade = 20cria uma variável chamadaidadecom o valor 20.if (idade >= 18)verifica se a idade é maior ou igual a 18.println()apresenta uma mensagem na tela.
Como a condição é verdadeira, o programa apresenta:
Você é maior de idade Se a idade fosse 15, o programa simplesmente não executaria o conteúdo do if.
Como utilizar ELSE junto com IF?
O else permite definir uma alternativa quando a condição do if não é verdadeira.
Isso significa que o programa poderá executar um código diferente dependendo do resultado da comparação.
if (condicao) {
// Executa se for verdadeiro
} else {
// Executa se for falso
} Exemplo 2: Maior ou menor de idade
fun main() {
val idade = 15
if (idade >= 18) {
println("Maior de idade")
} else {
println("Menor de idade")
}
} Resultado:
Menor de idade Nesse exemplo, como a idade é inferior a 18 anos, o programa executa o bloco else.
O else é especialmente útil quando existem apenas duas possibilidades de resposta, como:
- Aprovado ou reprovado.
- Login correto ou incorreto.
- Produto disponível ou indisponível.
- Usuário autorizado ou não autorizado.
Como utilizar ELSE IF no Kotlin?
Quando precisamos verificar várias condições diferentes, podemos utilizar else if.
Essa estrutura permite que o programa analise diferentes possibilidades antes de executar uma resposta.
Exemplo 3: Sistema de notas escolares
fun main() {
val nota = 7.5
if (nota >= 9.0) {
println("Excelente")
} else if (nota >= 7.0) {
println("Aprovado")
} else if (nota >= 5.0) {
println("Recuperação")
} else {
println("Reprovado")
}
} Resultado:
Aprovado Entendendo a sequência
O programa verifica as condições na ordem em que foram escritas:
- A nota é maior ou igual a 9? Não.
- A nota é maior ou igual a 7? Sim.
- O programa apresenta "Aprovado" e não precisa verificar as próximas condições.
Uma característica importante é que somente o primeiro bloco cuja condição seja verdadeira será executado.
Por isso, a ordem das condições deve ser planejada corretamente.
Como utilizar WHEN na programação Kotlin?
A estrutura when é uma alternativa muito útil ao if e else if, principalmente quando precisamos verificar várias possibilidades de uma variável.
Ela deixa o código mais organizado, fácil de entender e simples de manter.
Sua estrutura básica é:
when (variavel) {
valor1 -> {
// Código executado para valor1
}
valor2 -> {
// Código executado para valor2
}
else -> {
// Código executado se nenhum caso corresponder
}
} O when compara o valor da variável com os casos definidos. Quando encontra uma correspondência, executa o bloco correspondente.
Exemplo 4: Identificando o dia da semana
fun main() {
val dia = 3
when (dia) {
1 -> println("Domingo")
2 -> println("Segunda-feira")
3 -> println("Terça-feira")
4 -> println("Quarta-feira")
5 -> println("Quinta-feira")
6 -> println("Sexta-feira")
7 -> println("Sábado")
else -> println("Dia inválido")
}
} Resultado:
Terça-feira Nesse exemplo, o programa verifica o valor da variável dia. Como ela contém o número 3, o código executa a instrução correspondente à terça-feira.
O else dentro do when funciona como uma alternativa padrão. Se nenhum dos casos anteriores corresponder ao valor, ele será executado.
WHEN permite verificar vários valores ao mesmo tempo
Uma característica interessante do Kotlin é que podemos agrupar diferentes valores em um único caso.
fun main() {
val dia = 7
when (dia) {
1, 7 -> println("Fim de semana")
2, 3, 4, 5, 6 -> println("Dia útil")
else -> println("Dia inválido")
}
} Resultado:
Fim de semana Nesse código:
- Os números 1 e 7 representam o fim de semana.
- Os números de 2 até 6 representam os dias úteis.
- Outros valores são considerados inválidos.
Essa funcionalidade evita repetir instruções e facilita a organização do programa.
Como utilizar WHEN com intervalos de valores?
O Kotlin também permite utilizar intervalos dentro do when, por meio do operador in.
Isso é muito útil quando precisamos verificar se um número está dentro de determinada faixa.
Exemplo 5: Classificando a idade
fun main() {
val idade = 25
when (idade) {
in 0..12 -> println("Criança")
in 13..17 -> println("Adolescente")
in 18..59 -> println("Adulto")
in 60..120 -> println("Idoso")
else -> println("Idade inválida")
}
} Resultado:
Adulto O operador in verifica se o valor está dentro do intervalo indicado.
Por exemplo:
in 18..59 Significa que o valor pode estar entre 18 e 59, incluindo os dois extremos.
Também podemos utilizar !in para verificar se um valor está fora de um intervalo.
fun main() {
val idade = 15
if (idade !in 18..59) {
println("Idade fora da faixa adulta")
}
} Resultado:
Idade fora da faixa adulta WHEN também pode retornar valores
Uma das funcionalidades mais interessantes do Kotlin é que if e when podem ser utilizados como expressões.
Isso significa que podemos atribuir diretamente o resultado de uma condição a uma variável.
Exemplo 6: Criando uma classificação
fun main() {
val nota = 8.5
val resultado = when {
nota >= 9.0 -> "Excelente"
nota >= 7.0 -> "Aprovado"
nota >= 5.0 -> "Recuperação"
else -> "Reprovado"
}
println(resultado)
} Resultado:
Aprovado Observe que nesse exemplo o when não recebe uma variável entre parênteses.
Em vez disso, cada linha apresenta uma condição:
nota >= 9.0 -> "Excelente" O Kotlin verifica as condições na ordem apresentada e retorna o resultado do primeiro caso verdadeiro.
O valor retornado é armazenado na variável resultado.
Essa forma de utilização é bastante comum em projetos Kotlin e aplicativos Android.
Qual é a diferença entre IF, ELSE e WHEN?
Embora as três estruturas sejam utilizadas para controlar decisões, cada uma possui características próprias.
| Estrutura | Quando utilizar |
|---|---|
if | Quando precisamos verificar uma condição específica. |
else | Quando queremos executar uma alternativa caso a condição seja falsa. |
else if | Quando precisamos verificar várias condições diferentes. |
when | Quando queremos organizar várias possibilidades ou condições em uma estrutura clara. |
Exemplo comparando IF e WHEN
Imagine um sistema que identifica o tipo de usuário de um aplicativo.
Utilizando if:
fun main() {
val tipo = "admin"
if (tipo == "admin") {
println("Administrador")
} else if (tipo == "usuario") {
println("Usuário comum")
} else if (tipo == "visitante") {
println("Visitante")
} else {
println("Tipo desconhecido")
}
} Utilizando when:
fun main() {
val tipo = "admin"
when (tipo) {
"admin" -> println("Administrador")
"usuario" -> println("Usuário comum")
"visitante" -> println("Visitante")
else -> println("Tipo desconhecido")
}
} As duas versões produzem o mesmo resultado.
Entretanto, nesse cenário, o when deixa o código mais organizado e fácil de visualizar.
Como utilizar condições na prática em aplicativos Android?
As estruturas condicionais são utilizadas constantemente no desenvolvimento Android com Kotlin.
Elas permitem controlar comportamentos de telas, verificar informações digitadas pelo usuário, validar formulários e definir o que acontece após determinadas ações.
Exemplo 7: Verificando login de usuário
fun main() {
val usuario = "admin"
val senha = "123456"
if (usuario == "admin" && senha == "123456") {
println("Login realizado com sucesso")
} else {
println("Usuário ou senha incorretos")
}
} Resultado:
Login realizado com sucesso Nesse exemplo, o operador && significa que as duas condições precisam ser verdadeiras.
Também existem outros operadores lógicos importantes:
| Operador | Significado |
|---|---|
&& | E: todas as condições precisam ser verdadeiras. |
|| | OU: pelo menos uma condição precisa ser verdadeira. |
! | NÃO: inverte o resultado lógico. |
Esses operadores permitem criar condições mais completas e sofisticadas.
Importante: esse exemplo serve apenas para aprender lógica condicional. Aplicativos reais não devem armazenar ou verificar senhas dessa maneira, pois precisam utilizar mecanismos seguros de autenticação.
Erros comuns de iniciantes com IF, ELSE e WHEN
Ao começar a programar em Kotlin, alguns erros são bastante frequentes. Conhecer esses problemas ajuda a desenvolver códigos melhores.
1. Confundir = com ==
Veja a diferença:
val idade = 18 O operador = atribui um valor à variável.
Já:
if (idade == 18) {
println("Idade correta")
} O operador == compara dois valores.
2. Esquecer as chaves
Embora algumas instruções possam ser escritas sem chaves, é recomendável utilizá-las em blocos maiores para facilitar a leitura.
if (idade >= 18) {
println("Maior de idade")
} 3. Não utilizar ELSE em situações necessárias
Quando precisamos garantir uma resposta para todas as possibilidades, o else ajuda a evitar que o programa fique sem apresentar um resultado.
4. Colocar condições na ordem incorreta
Observe:
if (nota >= 5) {
println("Aprovado")
} else if (nota >= 9) {
println("Excelente")
} Nesse caso, uma nota 10 será classificada apenas como aprovada, pois a primeira condição já é verdadeira.
O correto seria:
if (nota >= 9) {
println("Excelente")
} else if (nota >= 5) {
println("Aprovado")
} A ordem das condições pode alterar completamente o resultado do programa.
Exercício prático para aprender Kotlin
Agora que você conhece as principais estruturas, experimente desenvolver um pequeno programa que verifica se um número é positivo, negativo ou zero.
Desafio para iniciantes:
fun main() {
val numero = -5
if (numero > 0) {
println("Número positivo")
} else if (numero < 0) {
println("Número negativo")
} else {
println("Número igual a zero")
}
} Resultado:
Número negativo Experimente alterar o valor da variável numero para 10, -2 e 0. Observe como o programa apresenta resultados diferentes.
Esse tipo de exercício é excelente para desenvolver o raciocínio lógico e compreender como as condições funcionam.
Conclusão
As estruturas if, else e when são fundamentais para quem deseja aprender Kotlin e desenvolver aplicativos Android.
O if permite verificar condições específicas, o else oferece alternativas e o when facilita a organização de múltiplas possibilidades.
Com prática e exemplos simples, é possível compreender esses recursos e começar a criar programas cada vez mais completos.
Aprender a utilizar condições corretamente é um dos primeiros passos para desenvolver aplicativos inteligentes, interativos e funcionais com Kotlin.