Como cálcular comissão de vendas em java

Ola pessoal, estou com dificuldade para entender o porque do programa, entrar em somente em 1 dos IFs que fiz, pra qualquer valor, ele entra no segundo If. Fiz o teste para retornar o valor da comissaoVendedor, e o cálculo está certo, porém ele so está entrando no segundo IF. O funcionemento do programa é simples, Digito o nome do vendedor, A sua meta e o valor vendido. Se meta for por exemplo 1000, e o valor vendido 499, deveria entrar no primeiro IF, porém ele já pula para o segundo e independente do valor. Tem uma tabela de informações sobre os valors que seriam assim: Menos de 50% lucra 1% sobre o valor das vendas; De 50% a 75% lucra 2,5%; De 75,1% a 100% lucra 3,5%; e acima de 100% lucra 5%

    public class Vendedor {
     //definindo atributos
     private String nome;
     private double meta;
     private double totalVendido;

         //criacao do metodo para calcular a comissao do vendedor
     public double calcularComissao() {
             double valorVendido;
	 double comissaoVendedor = (totalVendido / meta) * 100;
	 if (comissaoVendedor < 0.5) {
		valorVendido = (totalVendido * 0.01);
	 }else if(comissaoVendedor >= 0.5 || comissaoVendedor <= 0.75 ) {
		valorVendido = (totalVendido * 0.025);
	 }else if(comissaoVendedor >= 0.751 || comissaoVendedor <= 2.0 ) {
		valorVendido = (totalVendido * 0.035);
	 }else if(comissaoVendedor > 2.0 ) {
		valorVendido = (totalVendido * 0.05);
	 }else {
		valorVendido = 0 ;
	}
	return valorVendido;
  }
}

Se o total de vendas é 499 e a meta é 1000, essa conta dá 49,9. Por isso não entra no primeiro if, já que 49,9 não é menor que 0,5.

Então bastava não multiplicar por 100.

Mas aí tem outro problema no segundo if:

Você está testando se a comissão é maior ou igual a 0,5 ou se é menor ou igual a 0,75 (se apenas uma dessas condições for verdadeira, ele entra no if, e como a comissão é 49,9, então a primeira condição é verdadeira).

Você poderia trocar o || por &&, mas na verdade não precisa, dá pra fazer assim:

if (comissaoVendedor < 0.5) {
    valorVendido = totalVendido * 0.01;
} else if(comissaoVendedor <= 0.75 ) {
    valorVendido = totalVendido * 0.025;
} else if(comissaoVendedor <= 1.0 ) {
    valorVendido = totalVendido * 0.035;
} else {
    valorVendido = totalVendido * 0.05;
}

Se for maior ou igual a 0,5 não vai entrar no primeiro if. Então se chegou no primeiro else if é porque com certeza já é maior ou igual a 0,5 e não precisa testar isso de novo, basta testar se é menor ou igual a 0,75.

O mesmo raciocínio vale para os demais if's, e por fim no último else eu sei que se chegou ali é porque com certeza é maior que 1.

Claro que isso não valida valores negativos, mas se quiser validar isso também coloque outro if no início.

Bah me abriu a mente kkkk eu tava rateando mesmo, isso que da eu ser novato kkkk, valeu consegui.