Black November

ATÉ 50% OFF

TÁ ACABANDO!

0 dias

0 horas

0 min

0 seg

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

Minha resolução! -

Analisei a questão de forma lógica. Foi apresentado um range. ou seja, uma janela de valores Sendo elas

valor minimo - 1.900,00 valor máxim - 4.664,00

*janela minima e máxima de forma macro.

o mesmo para os valores de deduções menor dedução - 142,00 maior dedução- 636,00

*janela minima e máxima de forma macro.

após isso, me perguntei acerca dos valores que não podem ser encontradas nessa janela. Então pensei em considerar os valores que não se encontram como "não haverá deduções"para valores abaixo de 1.900,00 e considerar a dedução de 869,00 para valores acima de 4.664,01. (essa dedução de 869,00 é ref. a alíquita de 27,5%)

Meu código, então, ficou assim.

package sintaxe_variaveis_e_fluxo;

public class TesteImpostoDeRenda {
    public static void main(String[] args) {

        double salario = 3300.0;

        double menorDeducao = 142.0;
        double mediaDeducao = 350.0;
        double maiorDeducao = 636.0;
        double deducaoMaxima = 869.0;

        if (salario < 1900.0) {
            System.out.println("Não haverá deduções");
        }
        if (salario >= 1900.0 && salario <= 2800.0) {
            System.out.println("A dedução será de " + menorDeducao);
        }
        if(salario >= 2800.01 && salario <= 3751.0) {
            System.out.println("A dedução será de " + mediaDeducao);
        }
        if(salario >= 3751.01 && salario <= 4664.00){
            System.out.println("A dedução será de " + maiorDeducao);
        }
        if(salario > 4664.01) {
            System.out.println("A dedução será de " + deducaoMaxima);
        }
    }

}

me ajudem e deixem feedback para melhorias!! :D

Matricule-se agora e aproveite até 50% OFF

O maior desconto do ano para você evoluir com a maior escola de tecnologia

QUERO APROVEITAR
2 respostas
solução!

Fala Lucas, de boa ?

Cara sua implementação está super certa, tem alguns pontos que talvez daria para deixar o código mais "enxuto" :

        if (salario < 1900.0) {
            System.out.println("Não haverá deduções");
        }
        else if (salario <= 2800.0) {
            System.out.println("A dedução será de " + menorDeducao);
        }
        else if(salario <= 3751.0) {
            System.out.println("A dedução será de " + mediaDeducao);
        }
        else if(salario <= 4664.00){
            System.out.println("A dedução será de " + maiorDeducao);
        }
        else {
            System.out.println("A dedução será de " + deducaoMaxima);
        }

Dessa maneira você evita que o programa fica fazendo diversas comparações, assim que ele encontrar o valor ele termina de executar.

Mto obrigado!!!