1
resposta

[Projeto] Meu projeto

package DesafioAlura;

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

class Produto {
    private String produto;
    private double preco;

    public Produto(String produto, double preco) {
        this.produto = produto;
        this.preco = preco;
    }
    public String getProduto() {
        return produto;
    }   
    public double getPreco() {
        return preco;
    }
    @Override
    public String toString() {
        return "Produto: " + produto + ", Preço: R$ " + preco;
    }
}

public class Compras {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("Digite o limite do cartão: ");
        int limiteCartao = scanner.nextInt();

        ArrayList<Produto> listaDeProdutos = new ArrayList<>();

        while (true) {
            System.out.println("Digite a descrição do produto:");
            scanner.nextLine();
            String descricao = scanner.nextLine();

            System.out.println("Digite o valor do produto:");    
            int valor = scanner.nextInt();

            Produto produto = new Produto(descricao, valor);
            if (valor > limiteCartao) {
                System.out.println("Produto não adicionado. Valor excede o limite do cartão.");
                    if (listaDeProdutos.isEmpty()) {
                        break;
                    }else{
                        System.out.println("Lista de produtos comprados: ");
                        for (Produto p : listaDeProdutos) {
                            System.out.println("- " + p.getProduto() + ": R$ " + p.getPreco());
                        }
                        break;
                    }
                }else {
                System.out.println("Compra realizda!");
                    listaDeProdutos.add(produto);
                    //atualiza o limite do cartão
                    limiteCartao -= valor;
                    System.out.println("Saldo: " + limiteCartao);
                        System.out.println("Digite 0 para sair e 1 para continuar comprando:");
                        int continuar = scanner.nextInt(); 
                        if (continuar == 0) {
                            System.out.println("Lista de produtos comprados: ");
                            for (Produto p : listaDeProdutos) {
                                System.out.println("- " + p.getProduto() + ": R$ " + p.getPreco());
                            }
                            break;
                    }else {
                        continue;
                    }
                }
            }scanner.close();
        }
    }

1 resposta

Oi, João! Como vai?

Agradeço por compartilhar.

Gostei da forma como você organizou as classes e aplicou o ArrayList pra armazenar os produtos, a lógica de controle do limite do cartão tá bem alinhada com a proposta do desafio e mostra um bom domínio do fluxo de decisões.

Continue praticando esse tipo de solução, pois esse exercício conecta bem lógica, classes e coleções.

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