Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

[Projeto] Cadastro de livros

package br.com.praticando.java;

import java.util.InputMismatchException;
import java.util.Scanner;

public class CadastroDeLivros {
    public static void main(String[] args) {
        Scanner leia = new Scanner(System.in);
        String livro;
        String autor;
        int numeroDePaginas;
        double precoDoLivro;
        char categoria = 'F';
        String descricaoCategoria;

        System.out.println("Digite o nome do livro: ");
        livro = leia.nextLine();

        System.out.println("Digite o nome do autor: ");
        autor = leia.nextLine();

        System.out.println("Digite o número de páginas: ");
        numeroDePaginas = leia.nextInt();

        System.out.println("Digite o preço do livro: ");
        precoDoLivro = leia.nextDouble();

            System.out.println("****** Por favor selecione a categoria correta: ********");
            System.out.println("************************************************");
            System.out.println("************* Categorias disponiveis: ***************");
            System.out.println("****************      F - Ficção       ******************");
            System.out.println("****************      N - Não-ficção   ****************");
            System.out.println("****************      T - Tecnologia   *****************");
            System.out.println("****************      H - História     ******************");

            System.out.println("Escolha a categoria correta: ");

        categoria = leia.next().charAt(0);

        if(categoria == 'F'){
            descricaoCategoria = "Ficção";
            System.out.println("Você acabou de escolher a opção: " + descricaoCategoria);
        }else if (categoria == 'N'){
            descricaoCategoria = "Não-ficção";
            System.out.println("Você acabou de escolher a opção: " + descricaoCategoria);
        } else if (categoria == 'T') {
            descricaoCategoria = "Tecnologia";
            System.out.println("Você acabou de escolher a opção: " + descricaoCategoria);
        }else if (categoria == 'H'){
            descricaoCategoria = "Historia";
            System.out.println("Você acabou de escolher a opção: " + descricaoCategoria);
        }else {

        descricaoCategoria = "Categoria inválida";
        System.out.println("Categoria inválida!");

    }

        System.out.println(
                "O resultado final do livro é: \nLivro: " + livro + "\nAutor: " + autor
                + "\nNúmero de Páginas: " + numeroDePaginas + "\nPreço do Livro: " + precoDoLivro
                + "\nCategoria: " + categoria + "\nDescrição: " + descricaoCategoria
        );

        leia.close();

    }
}
1 resposta

Oi, Sara! Tudo bem?

Que legal ver seu progresso no cadastro de livros, você estruturou muito bem as variáveis e tipos nesse projeto.

Você fez um bom uso do if/else if para validar a categoria escolhida e ainda formatou a saída com \n para deixar o resultado mais legível. O cuidado em criar a variável descricaoCategoria para cada caso mostra que você entendeu bem a lógica condicional.

Uma dica interessante para o futuro é usar o switch em vez de vários if/else if quando você tiver muitas condições fixas como essa de categorias. Fica mais limpo e fácil de ler. Veja este exemplo:


switch (categoria) {
    case 'F':
        descricaoCategoria = "Ficcao";
        break;
    case 'N':
        descricaoCategoria = "Nao-ficcao";
        break;
    case 'T':
        descricaoCategoria = "Tecnologia";
        break;
    case 'H':
        descricaoCategoria = "Historia";
        break;
    default:
        descricaoCategoria = "Categoria invalida";
}

Esse código compara o valor de categoria com cada case e executa o bloco correspondente, parando no break para não continuar testando os outros casos.

Você já tinha usado o switch antes em algum exercício ou essa seria a primeira vez experimentando essa estrutura?

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