Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Minha resolução

Olá, pessoal.
Resolvi este exercício criando variáveis para armazenar as informações do livro (título, autor, número de páginas, preço e categoria) e utilizei uma estrutura condicional (if/else if) para exibir a descrição da categoria de acordo com o caractere informado.

Procurei manter a solução simples e objetiva, atendendo exatamente ao que foi pedido no enunciado, sem adicionar complexidade desnecessária.

Fico aberto a sugestões de melhoria, boas práticas e eventuais correções no código.
Críticas construtivas são bem-vindas.

Agradeço desde já pela atenção.

String categoriaDescricao;

if (categoria == 'F') {
    categoriaDescricao = "Ficção";
} else if (categoria == 'N') {
    categoriaDescricao = "Não-ficção";
} else if (categoria == 'T') {
    categoriaDescricao = "Tecnologia";
} else if (categoria == 'H') {
    categoriaDescricao = "História";
} else {
    categoriaDescricao = "Categoria inválida";
}

System.out.println("Livro cadastrado: \"" + titulo + "\", de " + autor + ". Ele possui " + numeroPagina + " páginas, custa R$ " + precoLivro + " e pertence à categoria " + categoriaDescricao + ".");

Saída: Livro cadastrado: "O Pequeno Príncipe", de Saint-Exupéry. Ele possui 96 páginas, custa R$ 39.9 e pertence à categoria Ficção.

1 resposta
solução!

Olá, Filipe, como vai?

O código apresenta uma lógica sólida para a classificação das categorias e a concatenação dos dados na mensagem final atende ao que foi solicitado. O uso da estrutura condicional para mapear o caractere para uma descrição textual é uma boa prática para tornar a saída mais legível ao usuário final.

A única observação é manter atenção ao nome das variáveis, como numeroPagina, que poderia estar no plural (numeroPaginas) para ficar mais coerente com a mensagem exibida. Também vale observar a formatação do preço: ao imprimir 39.9, o Java não controla casas decimais automaticamente, então, se desejar padronizar para duas casas, pode utilizar String.format.

Por exemplo, para formatar o preço com duas casas decimais:

String precoFormatado = String.format("%.2f", precoLivro);

E na impressão:

"custa R$ " + precoFormatado

Agradeço por compartilhar sua resolução e incentivo que continue praticando e postando seus avanços.

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