5
respostas

É uma maneira legal de escrever o código?

 static void Main(string[] args)
        {
            double salario = 4000.0;

            if (salario <= 2800.0) 
            {
                Console.WriteLine("O IR é de 7.5% e pode deduzir na declaração o valor de R$142,00");
            }
            if (salario <= 3751.0)
            {
                Console.WriteLine("O IR é de 15% e pode deduzir na declaração o valor de R$350,00");
            }
            else
            {
                Console.WriteLine("O IR é de 22.5% e pode deduzir na declaração o valor de R$636,00");
            }
            Console.ReadLine();
        }
5 respostas

Olá Luci, tudo bem?

O seu código está legal, mas com o proposto no exercício ele acaba fugindo um pouco. Seria bacana você utilizar o operador lógico &&.

Primeira condição proposta: De 1900.0 até 2800.0, o IR é de 7.5% e pode deduzir na declaração o valor de R$ 142. Você poderia fazer o if desta forma:

if (salario >= 1900 &&  salario <= 2800)
            {
                Console.WriteLine("O IR é de 7.5% e pode deduzir na declaração o valor de R$142,00");
            }

Um outro ponto seria o else, este está ligado ao segundo if apenas. Veja que se você declarar um salário que corresponde ao primeiro if (de 1900 a 2800), ele será chamado também. O que poderia ser feito nesse caso é a utilização de 3 if seguidos.

Espero que tenha ficado claro. Se precisar de algum apoio estarei por aqui :)

Bons estudos!

Olá Luci tudo bem? bom nesse caso o código ele vai ter um probleminha quando o valor for maior que 2800 e menor igual 3751. pois irá atender as duas condições do if a forma mais simples de corrigir o seu código seria:

 static void Main(string[] args)
         {
            double salario = 4000.0;

            if (salario <= 2800.0)
            {
               Console.WriteLine("O IR é de 7.5% e pode deduzir na declaração o valor de R$142,00");
            }
            else
            {
               if (salario <= 3751.0)
               {
                  Console.WriteLine("O IR é de 15% e pode deduzir na declaração o valor de R$350,00");
               }
               else
               {
                  Console.WriteLine("O IR é de 22.5% e pode deduzir na declaração o valor de R$636,00");
               }
            }
            Console.ReadLine();
         }

ou então:

static void Main(string[] args)
         {
            double salario = 4000.0;

            if (salario <= 2800.0)
            {
               Console.WriteLine("O IR é de 7.5% e pode deduzir na declaração o valor de R$142,00");
            }
            else if (salario <= 3751.0)
            {
               Console.WriteLine("O IR é de 15% e pode deduzir na declaração o valor de R$350,00");
            }

            else
            {
               Console.WriteLine("O IR é de 22.5% e pode deduzir na declaração o valor de R$636,00");
            }
            Console.ReadLine();
         }

Boa tarde. Embora mais "complexa", uma outra forma mais "estilosa" e legível de escrever este algoritmo, quando se tem vários "if" encadeados, seria usar o switch-case assim:

switch (salario > 0)
            {
                case true when salario <= 2800.0:
                    Console.WriteLine("O IR é de 7.5% e pode deduzir na declaração o valor de R$142,00");
                    break;

                case true when salario <= 3751.0:
                    Console.WriteLine("O IR é de 15% e pode deduzir na declaração o valor de R$350,00");
                    break;

                default:
                    Console.WriteLine("O IR é de 22.5% e pode deduzir na declaração o valor de R$636,00");
                    break;
            }

Boa tarde. Embora mais "complexa", uma outra forma mais "estilosa" e legível de escrever este algoritmo, quando se tem vários "if" encadeados, seria usar o switch-case assim:

switch (salario > 0)
            {
                case true when salario <= 2800.0:
                    Console.WriteLine("O IR é de 7.5% e pode deduzir na declaração o valor de R$142,00");
                    break;

                case true when salario <= 3751.0:
                    Console.WriteLine("O IR é de 15% e pode deduzir na declaração o valor de R$350,00");
                    break;

                default:
                    Console.WriteLine("O IR é de 22.5% e pode deduzir na declaração o valor de R$636,00");
                    break;
            }

Olá Luci, Beleza ?

Acho que para facilitar o seu else if, seria bom colocar o operador lógico "&&" . Como vistos neste exemplo do exercício:

       {
            double salario = 3800.0;
           if(salario >= 1900.0 && salario <= 2800.0)


            Console.WriteLine("A sua aliquota é de 7%");
            Console.WriteLine("Você pode deduzir até R$ 142");
        }
        else if(salario >= 2800.01 && salario <= 3751.0)
        {
            Console.WriteLine("A sua aliquota é de 15%");
            Console.WriteLine("Você pode deduzir até R$ 350");
        }
        else if(salario >= 3751.01 && salario <= 4664.0)
        {
            Console.WriteLine("A sua aliquota é de 22.5%");
            Console.WriteLine("Você pode deduzir até R$ 636");
        }
    }
}

Qualquer dúvida que tiver Luci, sobre esse ou outros exercícios, pode nos falar aqui no Fórum, que vamos sempre Te Ajudar =) .

Grande Abraço. Continue com os Bons Estudos, e tenha uma Ótima Semana =) .

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software