Array
(
    [0] => stdClass Object
        (
            [Votos_Balanceados] => 2
            [id] => 585854
            [titulo] => Calculo de Comissão  sobre  venda
            [dataCadastro] => DateTime Object
                (
                    [date] => 2017-09-14 18:48:00
                    [timezone_type] => 3
                    [timezone] => America/Sao_Paulo
                )

            [isFirstPost] => -1
            [idUsuario] => 291861
            [status] => A
            [isExample] => -1
            [NomeUsuario] => Marcos Alfredo Saffran
            [Login] => msaffran
            [Apelido] => 
            [Foto] => 
            [Conteudo] => Olá Kaleb, na condição:
if (venda >= 1000 || venda < 2000)

Você está utilizando o OU lógico "||", o que fará que seja executado o código sempre que a venda for >= 1000, nesse caso não será verificado se a venda é menor que 2000, utilize o E lógico "&&" no lugar do "||".

if (venda >= 1000 && venda < 2000). ) )

Calculo de Comissão sobre venda

Kaleb Pignaton
   - 13 set 2017

Olá pessoal, estou com um problema eu um calculo onde tenho que pegar o salario mais a comissão e os dias de faltas que será descontado, sendo que a comissão é de 10% sobre a venda ser for maior que 1000 e menor que 2000 e 15% ser for maior que 2000.Só que o programa está fazendo errado o calculo da 15% sobre venda.
Sou iniciante em Java e já tentei de tudo pra esse código.
#Código

public class Vendedor {

    private float venda,novavenda, salario;
    private String nome;
    private int faltas;
    
    
	public void setVenda(float venda){
		this.venda = venda;
	}
	public float getVenda(){
		return this.venda;
	}
	public void setNovaVenda(float novavenda){
		this.novavenda = novavenda;
	}
	public float getNovaVenda(){
		return this.novavenda;
	}
	public void setSalario(float salario){
		this.salario = salario;
	}
	public float getSalario(){
		return this.salario;
	}
	public void setNome(String nome){
		this.nome = nome;
	}
	public String getNome(){
		return this.nome;
	}
	public void setFaltas(int faltas){
		this.faltas = faltas;
	}
	public int getFaltas(){
		return this.faltas;
	}
	public void imprimirDados(){
		System.out.println("Nome: " + nome);
		System.out.println("Venda: " + venda);
		System.out.println("Salario: " + salario);
		System.out.println("Faltas: " + faltas);
		System.out.println("Seu novo Salario: " + calculaSalario());
		System.out.println("Sua comissao: " + calculaComissao());
		System.out.println("");
	}
	private double calculaComissao(){
		
		if (venda >= 1000 || venda < 2000){
		  venda* 0.10;
		}
		else if (venda >= 2000){
		   venda * 0.15;
		}else {
			System.out.println("Nao teve comissão ");
		}
		
		return venda;
	}
	private double calculaSalario(){
		double novaFaltas,calculaFaltas, novoSalario; 
		//int mes;
		//mes = 30;
		calculaFaltas = salario / 30;
		novaFaltas = calculaFaltas * faltas;
	    novoSalario = salario + calculaComissao();
	    
	    return novoSalario;
	}	    
}

essa é a outra parte do código onde imprimi os dados.
#Código
import java.util.Scanner;

public class TesteVendedor {
      
  
    public static void main(String[] args) {
        Vendedor v1 = new Vendedor();
        
        Scanner dados =  new Scanner(System.in);
        
        //System.out.println("Digite seu nome: ");
         //00v1.setNome(dados.next());
        System.out.println("Digite seu salario: ");
         v1.setSalario(dados.nextFloat());
        System.out.println("Digite quanto voce vendeu: ");
         v1.setVenda(dados.nextFloat());
        System.out.println("Digite seu faltas: ");
         v1.setFaltas(dados.nextInt());
         
         v1.imprimirDados();
    }
}

Post mais votado

Marcos Saffran
|
MVP
Pontos: 315
    14 set 2017

Olá Kaleb, na condição:
if (venda >= 1000 || venda < 2000)

Você está utilizando o OU lógico "||", o que fará que seja executado o código sempre que a venda for >= 1000, nesse caso não será verificado se a venda é menor que 2000, utilize o E lógico "&&" no lugar do "||".

if (venda >= 1000 && venda < 2000).

Kaleb Pignaton
   - 27 set 2017

muito obrigado, consegui resolver.