🧠 Quiz: Cap 05 — Decisões e Ranks (if/when)

📖 Ver Cap 05

Teste se você entendeu os conceitos do Cap 05 antes de seguir para o Cap 06. Pense na sua resposta antes de abrir o gabarito!


1. O que a estrutura if representa?

A) Um loop que repete várias vezes B) Uma “pergunta de Sim ou Não” que decide o que o código faz a seguir C) Uma variável especial D) Um tipo de dado numérico


2. Na expressão when (nivel) { in 1..10 -> "Bronze" ... }, o que in 1..10 significa?

A) nivel é igual a 1 ou a 10 B) nivel está dentro do intervalo de 1 a 10 (incluindo as pontas) C) nivel é maior que 10 D) nivel multiplicado por 10


3. Quando usar when costuma ser mais adequado do que vários if/else if encadeados?

A) Nunca — when é apenas um sinônimo mais lento de if B) Quando há várias opções/faixas de valores para comparar com a mesma variável C) Apenas quando o valor é Boolean D) Apenas dentro de funções @Composable


4. No when usado como expressão (que gera um valor para uma val), o que acontece se faltar o else ->?

A) O programa roda normalmente, retornando null B) Erro de compilação: 'when' expression must be exhaustive C) Todas as opções são executadas ao mesmo tempo D) O Kotlin escolhe a primeira opção automaticamente


5. No exemplo do “Juiz de Rank” do capítulo, qual seria o rank atribuído a nivel = 25?

A) Bronze B) Prata C) Ouro D) Nenhum — o código quebraria


🔑 Ver Gabarito 1. **B** — `if` testa uma condição: se for verdadeira, executa um bloco; senão, pode executar o `else`. 2. **B** — `in 1..10` testa se o valor está dentro do intervalo fechado de `1` até `10`. 3. **B** — `when` deixa mais legível comparar a mesma variável com várias faixas/valores possíveis. 4. **B** — quando o `when` precisa **produzir um valor**, o Kotlin exige que todos os casos estejam cobertos, geralmente com `else ->`. 5. **C** — `25` não está em `1..10` nem em `11..20`, então cai no `else -> "Ouro"`.

⬅️ Voltar para Quizzes