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
- Declaramos a variável
idadecom valor 15. - O primeiro
ifverifica seidade < 12. Como 15 não é menor que 12, o bloco é ignorado. - O
else if (idade < 18)é avaliado: 15 < 18 é verdadeiro, então entra nesse bloco. Console.WriteLine("Adolescente")é executado.- O
elsefinal 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
ifem vez deelse if:
if (idade < 12) ... if (idade < 18) ...faria com que idades menores que 12 também entrassem no segundoif, imprimindo duas mensagens. - Esquecer o
elsefinal: 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