Problema em criar Metodo Desconto em Java[RESOLVIDO]

Fala pessoal blz? Estou exercitando em JavaScript, e criei um sistema de fabrica onde consigo calcular quantos a pessoa irá pagar ao comprar uma quantidade x de camisas pequenas, grandes, medias cada uma com seu respectivo preço… E agora estou tentando colocar diferentes tipos de pagamento, A vista, No cartão, cada um com um preço diferente, seja com desconto ou juros… Só que quando imprimo está saindo Desconto: 0 , queria que saisse o valor total da compra - 10% de desconto… Quem puder me ajudar agradeço

Fabrica.java:

public class Fabrica {
int camisasPequenas = 10;
int camisasMedias = 12;
int camisasGrandes = 15;

public Integer calcularCamisetas(int a, int b, int c){
	Integer valorTotal = (camisasPequenas * a + camisasMedias * b + camisasGrandes * c);
	return valorTotal;
} 
public Integer calcularDesconto(int a, int b, int c){
	Integer valorDesconto = ((2*camisasPequenas * a + 2*camisasMedias + 2*camisasGrandes * c)/100);
	return valorDesconto;
	
}
}

ProgramaPrincipal:

import java.util.Scanner;

public class ProgramaPrincipal {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
Fabrica cc = new Fabrica();

System.out.println("Seja bem vindo a loja do Romeu");
System.out.println("Quantas camisas pequenas?");
Integer qtdCamisasPequenas = scan.nextInt();
System.out.println("Quantas camisas medias?");
Integer qtdCamisasMedias = scan.nextInt();
System.out.println("Quantas camisas grandes?");
Integer qtdCamisasGrandes = scan.nextInt();

Integer valorTotal = cc.calcularCamisetas(qtdCamisasPequenas, qtdCamisasMedias, qtdCamisasGrandes);
Integer valorDesconto = cc.calcularDesconto(qtdCamisasGrandes, qtdCamisasMedias, qtdCamisasGrandes);
System.out.println("O valor que você pagará nas camisas é de:\nR$" + valorTotal + ",00");
System.out.println("O valor com desconto será de:" + valorDesconto);
}
}

A linguagem é Java e não JavaScript, são linguagens diferentes…

Enfim, seu método calcularDesconto deve retornar um double e não um Integer, por isso você está recebendo 0 devido a divisão por 100

public double calcularDesconto(int a, int b, int c) {
    double valorDesconto = ...
    return valorDesconto;
}

Além disso, cuidado com a ordem dos cálculos, por exemplo…

...2*camisasPequenas * a...

Tenha em mente que será calculado assim pelo Java

...(2*camisasPequenas) * a...

Dependendo da intenção, os valores serão diferentes…

Opa obrigado você poderia me dar um exmeplo do jeito que monto a formula?De todos os jeitos que estou configurando está dando erro

Bom a primeira coisa a se fazer é entender melhor o que você quer?

Esses atributos…

int camisasPequenas = 10;
int camisasMedias = 12;
int camisasGrandes = 15;

São os valores de cada camisa ou o desconto que você pretende dar?

São valores de cada camisa, o desconto que eu quero dar é de 10% encima do valor de cada camisa

E outra que não entendi é o porque do 2 * … em cada camisa no método calcularDesconto?

Aliás, é calcularDesconto ou calcularTotalDescontado?

Perecebeu como os nomes ajudam e muito a gente enteder o que se passa?

Então este metodo de calcularDesconto eu dei uma viajada, por que pensei o seguinte calcular o valor total das camisas gerada no calcularCamisas - o valor do desconto…
Ex: Valor total das camisas: 50
Desconto: 5
Valor descontado: 45

Mas então podemos ignorá-lo, já que você decidiu um desconto “travado” de 10% certo?

exato, pode sim , o desconto é fixo em 10%

public class Fabrica {
    private double vlrCP = 10.0;
    private double vlrCM = 15.0;
    private double vlrCG = 20.0;
    private double descFixo = 0.10; //10%

    public double calcularCamisas(int qtdCP, int qtdCM, int qtdCG) {
        double total = (vlrCP * qtdCP) + (vlrCM * qtdCM) + (vlrCG * qtdCG);
        return total;
    }

    public double calcularDesconto(int qtdCP, int qtdCM, int qtdCG) {
        double total = calcularCamisas(qtdCP, qtdCM, qtdCG);
        return total - (total * descFixo);
    }
}

Veja se dá uma clareada… perceba como os nomes das variáveis ajudam entender o que se passa… assim como o tipo, tudo sendo double, se houver algum centavo, não se perde no cálculo…

1 curtida

Sim maravilha, ajudou bastante ,ja no programaPrincipal eu preciso fazer alguma modificação? Pelo fato do sistema gerar 2 informações…
1: Preço total das camisas
2: Preço total das camisas com desconto

Então pô, te perguntei se o calcularDesconto poderia ignorar e você disse que sim :joy:

Vou te passar os dois métodos então… vou editar lá em cima ok?

Então nao entendi sua pergunta kkkkk me desculpa, são duas informações geradas kkk

Quando te perguntei se poderia ignorá-lo, era se você não ia mais usá-lo, mas enfim, ajustei lá, veja como ficou…

No programa principal, você precisa mudar os tipos das variáveis, onde houve Integer, trocar para double…

Lost muito obrigado cara!!! Você é muito foda, valeu mesmo

1 curtida

Rapaz, cuidado os palavrões, a moderação pega pesado aqui… boa sorte…