Duvida sobre erro

aminha duvida é pq naum posso fazer op print destre jeito que implementei, são duas classes,essa venda e outra cliente, e outra duvida é como faço para ele verificar a quantidade de vendas cada chamada?

[code]class Cliente{

boolean ehInadimplente;
private int semanal, mensal, semestral, anual;
private double valorMedioDeCompra;
double valorDesconto;
Cliente( boolean in, int sema, int men, int seme, int an, double vmdc){

ehInadimplente = in;
semanal = sema;
mensal = men;
semestral = seme;
anual = an;
valorMedioDeCompra = vmdc;

}

boolean ehInadimplente(){
if(ehInadimplente = true){
return true;
}
else {
return false;
}
}

void alteraIna(boolean novoIn){
  
  ehInadimplente   = novoIn;
}

boolean  obtemIn(){
  return ehInadimplente;
}

void alteraPeriodicidadeSemanal(int smal){
  
  semanal = smal;
}

int obtemPeriodicidadeSemanal(){
  
  return semanal;
}

void alteraPeriodicidadeMensal( int m){
  
  mensal = m;
}

int obtemPeriodicidadeMensal(){
  
  return mensal;
}

void alteraPeriodicidadeSemestral( int s){
  
  semestral = s;
}

int obtemPeriodicidadeSemestral(){
  
  return semestral;
}

void alteraPeriodicidadeAnual( int a)
{
  anual = a;
}
int obtemPeriodicidadeAnual(){
  
  return anual;
}
double obtemValorMedio(){
  
  return valorMedioDeCompra;
}


void imprimeCliente(){
  
  System.out.println(" O Valor médio de compra é : " + valorMedioDeCompra);
  if(ehInadimplente == true){
    System.out.println(" O cliente é inadimplente ");
  }
  else{
    System.out.println(" O cliente esta em dia com os pagamentos ");
  }
  
  if (semanal > 0){
    System.out.println(" O cliente tem periodicidade semanal ");
  }
  else if (mensal > 0){
    System.out.println(" O cliente tem periodicidade mensal ");
  }
  else if(semestral > 0){
    
    System.out.println(" O cliente tem periodicidade semstral ");
  }
  
  else if(anual > 0){
    System.out.println(" O cliente tem periodicidade anual ");
  }
  else {
    System.out.println(" Não é cliente ");
  }
}

}
/code

[code]class Venda{

int qtdeDeVendas;

void imprimeCliente(Cliente cliente){

cliente.imprimeCliente();

}

int calculaDesconto(Cliente desconto, double valorMedioDesconto){

if(desconto.ehInadimplente == true){
  
  return 0;
}
else {
  if(desconto.obtemValorMedio() > valorMedioDesconto && desconto.obtemPeriodicidadeSemanal() > 0 ){
    desconto.valorDesconto = desconto.obtemValorMedio()*0.4;
    return 40;
    System.out.println(desconto.valorDesconto);// aqui esta o erro!!
    
  }
  
  else if(desconto.obtemValorMedio() <= valorMedioDesconto && desconto.obtemPeriodicidadeSemanal()> 0){
    desconto.valorDesconto = desconto.obtemValorMedio()*0.3;
    return 30;
    
  }
  else if (desconto.obtemValorMedio() > valorMedioDesconto && (desconto.obtemPeriodicidadeMensal() > 0 || desconto.obtemPeriodicidadeSemestral() > 0)){
    desconto.valorDesconto = desconto.obtemValorMedio()*0.3;
    return 30;
    
    
  }
  else if (desconto.obtemValorMedio() <= valorMedioDesconto && (desconto.obtemPeriodicidadeMensal() > 0 || desconto.obtemPeriodicidadeSemestral() > 0)){
    desconto.valorDesconto = desconto.obtemValorMedio()*0.25;
    return 25;
    
  }
  else if(desconto.obtemValorMedio() > valorMedioDesconto && desconto.obtemPeriodicidadeAnual() > 0){
    desconto.valorDesconto = desconto.obtemValorMedio()*0.15;
    return 15;
    
  }
  else {
    return -1;
  }
}
return -1;

}
}
[/code]

Olá!
Se você estiver se referindo sobre erro de compilação (provavelmente code unreachable), pode ter certeza que está sendo causado pelo return no lugar errado.

if(desconto.obtemValorMedio() > valorMedioDesconto && desconto.obtemPeriodicidadeSemanal() > 0 ){  
        desconto.valorDesconto = desconto.obtemValorMedio()*0.4;  
        return 40;  //ESTE RETURN
        System.out.println(desconto.valorDesconto);// aqui esta o erro!!  
}

Return só deve ser colocado quando não houver código que possa ser execudo após ele, no seu caso tem o System.out.println(desconto.valorDesconto);

Deste jeito funcionará:

if(desconto.obtemValorMedio() > valorMedioDesconto && desconto.obtemPeriodicidadeSemanal() > 0 ){  
        desconto.valorDesconto = desconto.obtemValorMedio()*0.4;  
        System.out.println(desconto.valorDesconto);
        return 40;
}

Dica: Quando tive algum erro, descreva o que vc está tentando fazer e cole a mensagem de erro. Ajuda muito quando alguém quiser ajudar… :wink:

Abraços!

ok valew a força!!!