Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Duvida de If e else if


public class impostoJoao {


        public static void main(String[] args) {

            double salario = 3300.0;

            //ifs aqui

            if(salario >= 1900 && salario <= 2800 ) {

                System.out.println("Joao deve dar 145 ao imposto");
            }

        if(salario >= 2800.01 && salario <= 3751) {
            System.out.println("joao deve dar 350 ao imposto");
        }
        if(salario >= 4664 && salario <= 3751) {
            System.out.println("joao deve dar 636 ao imposto");
        }
    }

}    


#  Minha dúvida é que meu código compilou "certo" utilizando-se de ifs,mas ao visulualizar o código dos colegas vi que usaram após o primeiro if somente else if, tem algum erro futuro que pode me ocorrer ao não utilizar os else if em alguns casos?
1 resposta
solução!

Fala Adão!

Então, não necessariamente o fato de não usar else if (senão se) acarreta erros no futuro. Ele pode ser facilmente subistituído por um else com um if e else dentro (isso lhe poupa linhas de código e o deixa mais limpo também).

Outra coisa... se atente para o que você está validando (entenda validar como verificar se atende a condição) com a condicional e veja o que faz mais sentido usar.

Não há uma norma geral que determine que você deve usar else if pra determinada ocasião... tudo depende do que você está tentando fazer e como. Mas, na minha opinião, usar essa condicional deixa o código mais "visual" do que está sendo feito.

Exemplo:

//Verificar a altura de uma pessoa e determinar se ela é alta, baixa ou tem estatura mediana

double altura = 1.75;

if (altura >= 1.80) {
    System.out.println("Alta");
} else if(altura >= 1.65) {
    System.out.println("Mediana");
} else {
    System.out.println("Baixa");
}

Observe que talvez fica mais fácil de enxergar o que está sendo feito.

No seu código, eu recomendo fortemente que ou você altere os dois últimos if por um else que pode ter um if com um else dentro (que verificaria o salário entre 2800.01 e 3751 e entre 3751.01 e 4664, respectivamente) ou fazer como boa parte da galera fez, utilizando else if para as condições.

Espero que tenha te ajudado :)