1
resposta

Classe Produto e Cálculo de Preço Médio

package br.alura.controleCalculos;

public class Produto {
    protected String nome;
    protected double preco;


    public Produto() { }

    public Produto(String nome, double preco) {
        this.nome = nome;
        this.preco = preco;
    }

    public String getNome() {
        return nome;
    }

    public double getPreco() {
        return preco;
    }


    @Override
    public String toString() {
        return "Produto{" +
                "nome='" + nome + '\'' +
                ", preco=" + preco +
                '}';
    }
}




import br.alura.controleCalculos.Produto;

import java.util.ArrayList;

public static void main(String[] args) {

    ArrayList<Produto> estoque = new ArrayList<>();
    double precoMedio = 0;
    Produto produto = new Produto("Mouse", 30.00);
    Produto produto1 = new Produto("Teclado", 52.00);
    Produto produto2 = new Produto("Caneta", 1.00);
    Produto produto3 = new Produto("Agenda", 20.00);
    Produto produto4 = new Produto("Fone", 78.00);

    estoque.add(produto);
    estoque.add(produto1);
    estoque.add(produto2);
    estoque.add(produto3);
    estoque.add(produto4);


    for(Produto p:estoque){

        precoMedio += p.getPreco();

        System.out.printf("Item - %s -> Preço Medio R$ %.2f.\n", p.getNome(), (precoMedio / estoque.size()));

    }

}
1 resposta

Oi, Enio! Tudo bem?

Parabéns pelo código e pela dedicação, é muito bacana poder acompanhar a sua evolução! Deixo como sugestão para calcular o preço médio, somar todos os preços primeiro e, só depois, dividir pelo número total de produtos, deixando o nosso código da seguinte forma:

import br.alura.controleCalculos.Produto;
import java.util.ArrayList;

public class Main {
    public static void main(String[] args) {

        ArrayList<Produto> estoque = new ArrayList<>();
        double precoTotal = 0;
        Produto produto = new Produto("Mouse", 30.00);
        Produto produto1 = new Produto("Teclado", 52.00);
        Produto produto2 = new Produto("Caneta", 1.00);
        Produto produto3 = new Produto("Agenda", 20.00);
        Produto produto4 = new Produto("Fone", 78.00);

        estoque.add(produto);
        estoque.add(produto1);
        estoque.add(produto2);
        estoque.add(produto3);
        estoque.add(produto4);

        // Calcula o preço total
        for (Produto p : estoque) {
            precoTotal += p.getPreco();
        }

        // Calcula o preço médio
        double precoMedio = precoTotal / estoque.size();
        System.out.printf("Preço Médio dos Produtos: R$ %.2f\n", precoMedio);
    }
}

Neste exemplo, primeiro somamos todos os preços dos produtos e, após o loop, calculamos o preço médio dividindo o precoTotal pelo tamanho da lista estoque. Assim, o preço médio é calculado corretamente e exibido apenas uma vez.

Espero ter ajudado!

Um forte abraço e bons estudos!