Fácil PHP

Classificação de idade

Enunciado

Escreva um programa que receba uma idade (inteiro) e imprima a categoria: Criança (0-12), Adolescente (13-17), Adulto (18-64) ou Idoso (65+). Use if, elseif e else.

Requisitos

  • Usar if, elseif e else para classificar.
  • Imprimir exatamente a categoria correspondente.
  • Considerar os limites: 12, 17, 64.

Código inicial

<?php
$idade = 25;
// Complete com if/elseif/else

Saída esperada

Adulto
Ver dica

Comece verificando se a idade é menor ou igual a 12; depois, se é menor ou igual a 17, e assim por diante.

Mostrar solução
<?php
$idade = 25;

if ($idade <= 12) {
    echo "Criança";
} elseif ($idade <= 17) {
    echo "Adolescente";
} elseif ($idade <= 64) {
    echo "Adulto";
} else {
    echo "Idoso";
}

Passo a passo

  1. Definimos a variável $idade com valor 25.
  2. A primeira condição $idade <= 12 é falsa, então o bloco não executa.
  3. A condição $idade <= 17 também é falsa.
  4. A condição $idade <= 64 é verdadeira, então o bloco echo "Adulto"; é executado.
  5. O else final só seria usado se nenhuma condição anterior fosse verdadeira.

Por que funciona

O if/elseif/else avalia as condições em ordem. Assim que uma é verdadeira, o bloco correspondente é executado e as demais são ignoradas. Isso garante que apenas uma categoria seja impressa.

Erros comuns

  • Esquecer o else final: se a idade for 70, nenhuma condição seria verdadeira e nada seria impresso. Use else para cobrir o restante.
  • Usar = em vez de == ou <=: if ($idade = 12) atribui 12 e sempre é verdadeiro. Use operadores de comparação.
  • Ordem errada das condições: se verificar $idade <= 64 antes de $idade <= 17, um adolescente seria classificado como adulto. Sempre do menor para o maior.

Outra forma de resolver

Poderia usar match(true) para avaliar condições:

$categoria = match(true) {
    $idade <= 12 => "Criança",
    $idade <= 17 => "Adolescente",
    $idade <= 64 => "Adulto",
    default => "Idoso",
};
echo $categoria;

Essa abordagem é mais concisa, mas requer PHP 8+.

Saída esperada

Adulto