1
resposta

Minha solução para o desafio

Queria saber se minha solução é boa, ficou extremamente diferente do dela kkkkkkkk.

package br.com.desafio;

public class MinhaCompra implements Comparable<MinhaCompra> {

    double valorCompra;
    String nome;

    @Override
    public String toString() {
        return this.nome + " - " + this.valorCompra;
    }

    @Override
    public int compareTo(MinhaCompra outraCompra) {
        return Double.valueOf(this.valorCompra).compareTo(Double.valueOf(outraCompra.valorCompra));
    }
}
    

package br.com.desafio;

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

public class Principal{
    public static void main(String[] args) {
        Scanner leitura = new Scanner(System.in);
        int continua = 1;
        double saldo;

        ArrayList<MinhaCompra> listaCompra = new ArrayList<>();

        System.out.println("Digite o limite do seu cartão:");
        saldo = leitura.nextDouble();

        while(continua != 0){
            MinhaCompra minhaCompra = new MinhaCompra();

            System.out.println("Digite a descrição do produto:");
            minhaCompra.nome = leitura.next();

            System.out.println("Digite o valor da compra:");
            minhaCompra.valorCompra = leitura.nextDouble();

            if (saldo < minhaCompra.valorCompra) {
                System.out.println("Saldo insuficiente!");
                break;
            } else {
                saldo -= minhaCompra.valorCompra;
                listaCompra.add(minhaCompra);
                System.out.println("Compra realizada!");
            }


            System.out.println("Digite 0 para sair e 1 para continuar");
            continua = leitura.nextInt();

            if(continua == 0){
                break;
            }
        }

        System.out.println("***********************");
        System.out.println("COMPRA REALIZADA: ");
        System.out.println();
        Collections.sort(listaCompra);
        for (MinhaCompra compra : listaCompra) {
            System.out.println(compra);
        }
        System.out.println();
        System.out.println("***********************");
        System.out.println();
        System.out.println("Saldo do cartão:" + saldo);
    }
}
1 resposta

Oi Danilo, tudo bem?

Primeiramente, parabéns por ter concluído o desafio! É sempre ótimo ver estudantes buscando soluções próprias e pensando fora da caixa. Vamos analisar seu código:

  1. Sua classe MinhaCompra implementa a interface Comparable, o que é ótimo, pois permite que você ordene suas compras. Você optou por ordenar suas compras pelo valor, o que está de acordo com o que foi feito na aula.

  2. Em sua classe Principal, você criou um loop while para continuar adicionando compras enquanto o usuário não digitar 0, o que está correto e segue o que foi feito na aula.

  3. Você também verificou se o saldo é suficiente antes de adicionar uma compra à lista, o que é uma boa prática.

  4. No final, você ordenou suas compras e as imprimiu, o que também está correto.

Sua solução tá correta e segue os princípios que foram ensinados na aula.

Um abraço e bons estudos.