Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Dúvida exercicio 3 do capítulo 3 - método extra

Pessoal, criei um método extra, calculaFerias, como abaixo: O cálculo dos 30% adicionais só funcionou após eu colocar os valores da seguinte forma: (1.00 + 1.00 / 3.00) Quando tentava (1 + 1 / 3), o valor de 1.3333 era arredondado para 1. Está certa a solução que encontrei? Também tenho dúvida quando o método é void, quando é public, quando é static e quando tenho que colocar return. Essas dúvidas ainda serão sanadas na sequencia do treinamento?

//Calcula férias public void calculaFerias(float nDias) { double totalFerias = 0; if (nDias == 20) { //1 salário + 1/3 adicional + 10 dias vendidos totalFerias = (this.salario (1.00 + 1.00 / 3.00)) + (this.salario 10 / 30); } else { //1 salário + 1/3 adicional totalFerias = this.salario * (1.00 + 1.00 / 3.00); } System.out.println("Valor total Férias = " + totalFerias + " para " + nDias + " dias");

}

4 respostas

Mario, rodei o código e não encontrei o erro mencionado por você.

public class Testa {
    static double salario = 1500;

    public static void main(String[] args) {
        calculaFerias(30);

    }

    public static void calculaFerias(float nDias) { 
         double totalFerias = 0; 
         if (nDias == 20)          { 
            totalFerias = (salario * (1 + 1 / 3.00)) + (salario * 10 / 30); 
         } 
         else { 
             totalFerias = salario * (1 + 1 / 3.00); 
         } 
         System.out.println("Valor total Férias = " + totalFerias + " para " + nDias + " dias");
     }

}

Tanto faz usar 1 ou 1.0 neste exemplo.

public deve ser usado para a classe quando o acesso dela puder ser realizado por qualquer classe.

public deve ser usado para os métodos e atributos quando estes estiverem disponíveis para serem acessados diretamente por outras classes, pertencentes ao mesmo pacote ou não. Normalmente, os atributos são private e os métodos public.

void é usado quando o método não precisa devolver nenhum valor para o método que o chamou.

return é usado para devolver o valor para quem chamou o método. Neste caso, o método não pode ser void. Métodos void não usam o return, porque não tem retorno.

por fim, o static são usados para as classes que não precisam ser instanciadas e para os métodos e atributos que não pertecem a um objeto, mas pertencem a classe.

estas informações serão reforçadas ao longo do curso e aplicabilidade de cada uma delas, também.

Gabriel, não deu erro porque você colocou (1 + 1 / 3.00). Se você colocasse (1 + 1 / 3), daria o erro que eu mencionei

solução!

Mario, entendi, agora.

Quando você usa 1/3 o resultado é um número inteiro porque é a divisão entre dois inteiros. O resultado é 1.

Quando você usa 1/3.0 o resultado é uma divisão com decimais. O valor é 1.33333333.

Por isto ocorre a diferença.

Por favor, marque uma das respostas como solução

Isso ajudará outros colegas.