Oii João, tudo bem?
Dando uma olhada no seu código, acredito que possa haver alguns pequenos detalhes. Como a sua variável categoria foi iniciada com o valor 'F', me parece que o código está caindo direto no else e exibindo "História" por não encontrar uma verificação específica para essa letra.
Outro ponto é que a letra 'T' talvez esteja repetida nas verificações. Como a leitura é feita de cima para baixo, acredito que a condição de "Tecnologia" acabe não sendo alcançada, já que o primeiro if com o 'T' deve capturar a execução antes.
Dá uma olhadinha em como o fluxo parece estar se comportando:
if (categoria == 'T'){ // Talvez a intenção aqui fosse o 'F'?
categoriaLivro = "Ficção";
} else if (categoria == 'N') {
categoriaLivro = "Não-Ficção";
} else if (categoria == 'T') { // Como o 'T' já apareceu acima, o código pode não chegar aqui
categoriaLivro = "Tecnologia";
} else {
categoriaLivro = "História";
}
Acredito que, se você fizer um pequeno ajuste para alinhar a letra correspondente a cada bloco (por exemplo, testando o 'F' no primeiro if), o código deva funcionar certinho como você espera.
Tenta fazer essa alteração e me conta o resultado!
Conte com a Alura para evoluir seus estudos. Em caso de dúvidas, fico à disposição.
Bons estudos!
Sucesso ✨