1
resposta

O que eu posso melhorar no codigo?

Eu assisti a aula do desafio, fui fazer o programa e ele funcionou (Quase 100% kk), só que quando fui ver as aulas da Jaqueline ela fez tudo diferente de mim, entt dentro do contexto de orientação a objetos, o que eu errei, e o que eu poderia ter feito melhor?

meu codigo:

import java.util.ArrayList; import java.util.Scanner;

public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); ArrayList purchaseList = new ArrayList<>(); double saldo, itemValor; String item; int opcaoMenu;

    System.out.println("Digite seu saldo: ");
    saldo = scan.nextDouble();

    do{
        System.out.println("Digite a descrição da compra: ");
        item = scan.next();

        purchaseList.add(item);

        System.out.println("Digite o valor do item: ");
        itemValor = scan.nextDouble();

        if(itemValor > saldo){
            System.out.println("Saldo Insuficiente");
        }else {
            saldo -= itemValor;
            System.out.println("Compra realizada!");
        }

        System.out.println("Digite 0 para sair e 1 para continuar: ");

        opcaoMenu = scan.nextInt();

        while(opcaoMenu != 1 && opcaoMenu!= 0){
            System.out.println("Opção Inválida!");
            System.out.println("Digite 0 para sair e 1 para continuar: ");
        }
    }while(opcaoMenu != 0);


    System.out.println("*********************************\n");
    System.out.println("COMPRAS REALIZADAS: ");
    System.out.println(purchaseList);
    System.out.println("*********************************\n");

    System.out.println("Saldo Final: " + saldo);

}

}

1 resposta

Olá Matheus!

Primeiramente, parabéns por ter conseguido fazer o programa funcionar!

Sobre sua pergunta, eu percebi que você utilizou uma abordagem procedural para resolver o desafio. Isso significa que você utilizou uma sequência de comandos para executar o programa, sem utilizar a orientação a objetos.

Uma maneira de melhorar o seu código seria utilizar a orientação a objetos. Você poderia criar uma classe "Compra" que teria os atributos "descrição" e "valor", por exemplo. Dessa forma, você poderia criar objetos do tipo "Compra" e adicioná-los a uma lista de compras, ao invés de adicionar apenas a descrição.

Além disso, você poderia criar métodos dentro da classe "Compra" para realizar a compra e verificar se o saldo é suficiente. Isso deixaria o seu código mais organizado e mais fácil de entender.

Espero ter ajudado e bons estudos!