1
resposta

[Projeto] Refatorando a organização de livros

Console.WriteLine("Digite o código do livro: ");
int codigo = int.Parse(Console.ReadLine()!);

switch (codigo)
{
    case >= 100 and <= 199:
        Console.WriteLine("Ficção Científica");
        break;

    case >= 200 and <= 299:
        Console.WriteLine("Literatura Clássica");
        break;

    case >= 300 and <= 399:
        Console.WriteLine("Fantasia");
        break;

    case >= 400 and <= 499:
        Console.WriteLine("Romance");
        break;

    case >= 500 and <= 599:
        Console.WriteLine("Suspense/Mistério");
        break;

    case >= 600 and <= 699:
        Console.WriteLine("Não Ficção");
        break;

    case >= 700 and <= 799:
        Console.WriteLine("Biografias/Memórias");
        break;

    case >= 800 and <= 899:
        Console.WriteLine("Distopia");
        break;

    case >= 900 and <= 999:
        Console.WriteLine("Infantojuvenil");
        break;

    default:
        Console.WriteLine("Código inexistente");
        break;
}
1 resposta

Olá, Iago, como vai?

Sua refatoração utilizando switch com padrões relacionais e o operador lógico and está correta e atende bem à proposta de reduzir a quantidade de condicionais encadeadas. A leitura ficou mais direta e a manutenção tende a ser mais simples, já que cada faixa de código está claramente separada em um case específico.

Como dica adicional, em cenários como esse também é possível trabalhar com o primeiro dígito do código para deixar a estrutura ainda mais enxuta. Por exemplo, ao dividir o valor por 100, o switch pode operar diretamente sobre o resultado inteiro dessa divisão, reduzindo a necessidade de verificar intervalos completos. Assim, um código como 451 resultaria em 4 e cairia diretamente no case correspondente à categoria Romance. Da mesma forma, um código como 762 resultaria em 7 e seria direcionado para Biografias/Memórias.

Parabéns pela implementação e obrigado por compartilhar sua solução. Continue participando e trazendo suas evoluções, o fórum está à disposição.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!