Fácil C#

Classificando idade com if/else

Enunciado

Escreva um programa que leia a idade de uma pessoa e imprima "Criança" se a idade for menor que 12, "Adolescente" se for de 12 a 17, e "Adulto" se for 18 ou mais. Use if/else if/else.

Requisitos

  • Usar if/else if/else
  • Imprimir exatamente uma das três palavras
  • Funcionar para idades negativas também (tratar como Criança)

Código inicial

using System;

class Program
{
    static void Main()
    {
        int idade = 15;
        // Complete com if/else if/else
    }
}

Saída esperada

Adolescente
Ver dica

Compare a idade com 12 e 18 usando operadores relacionais. Lembre-se de tratar idades menores que 12 primeiro.

Mostrar solução
using System;

class Program
{
    static void Main()
    {
        int idade = 15;

        if (idade < 12)
            Console.WriteLine("Criança");
        else if (idade < 18)
            Console.WriteLine("Adolescente");
        else
            Console.WriteLine("Adulto");
    }
}

Passo a passo

  1. Declaramos a variável idade com valor 15.
  2. O primeiro if verifica se idade < 12. Como 15 não é menor que 12, o bloco é ignorado.
  3. O else if (idade < 18) é avaliado: 15 < 18 é verdadeiro, então entra nesse bloco.
  4. Console.WriteLine("Adolescente") é executado.
  5. O else final não é executado porque um dos ramos anteriores já foi satisfeito.

Por que funciona

A cadeia if/else if/else garante que apenas um bloco seja executado. As condições são avaliadas em ordem, e a primeira verdadeira vence. Isso implementa uma classificação por faixas de idade de forma clara e eficiente.

Erros comuns

  • Usar if em vez de else if:
    if (idade < 12) ... if (idade < 18) ... faria com que idades menores que 12 também entrassem no segundo if, imprimindo duas mensagens.
  • Esquecer o else final: idades maiores ou iguais a 18 não imprimiriam nada.
  • Comparar com = em vez de == (embora aqui usamos <, o erro clássico é if (idade = 12) que não compila).

Outra forma de resolver

Usar uma switch expression com pattern matching:

string categoria = idade switch
{
    < 12 => "Criança",
    < 18 => "Adolescente",
    _    => "Adulto"
};
Console.WriteLine(categoria);

Essa forma é preferível quando há muitas faixas e se deseja expressividade.

Saída esperada

Adolescente