1
resposta

Comando

Olá, sou um iniciante da Alura e tenho uma dúvida ao compilar. Estou fazendo uma atividade de fazer um programa sobre imposto de renda. Ao jogar um valor muito alto o programa imprime os 2 valores e eu gostaria que ele me voltasse somente o valor de 15%. Alguém sabe me responder como eu faço isso? Desde já eu agradeço.

double Imposto = 4000.00;

            Console.WriteLine("Olá, vamos calcular o seu imposto.");

            {
                if (Imposto <= 1903.98)

                {
                    Console.WriteLine("Você não precisa declarar imposto de renda.");
                }

                else

                {
                    if (Imposto >= 1909.99 || Imposto <= 2826.65)

                    {
                        Console.WriteLine("Sua alíquota é de 7,5%, Deve pagar R$ 142,80.");
                    }

                    if (Imposto >= 2826.66 || Imposto <= 3751.05)

                    {
                        Console.WriteLine("Sua alíquota é de 15%, Deve pagar R$ 354,80.");
                    }

                }
            }


            Console.ReadLine();
1 resposta

Olá, Weslley, tudo bem? Os IFs dentro do else, você usou o operador lógico ||(ou). Isso quer dizer que apenas um das condições precisa ser verdadeira para o código dentro do if ser executado...

Observe que o valor que você atribuiu a variável Imposto foi 4000. Isso quer dizer que imposto é maior que 1909.99 e 2826.66, satisfazendo uma das condições imposta dentro do Ifs com o || . Por isso ta imprimindo os dois valores. Neste caso se você quiser imprimir apenas o valor de 15%, uma solução seria no primeiro if dentro do else, trocar o || pelo &&.

Caso você tenha dúvidas sobre operadores lógicos, sugiro fazer os cursos de lógica de programação que tem aqui na Alura... Bons estudos :)