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

if. else if e else if ou if, if e if?

Qual é a diferença de usar o if, if e if para if, else if e else if? O resultado não é o mesmo?

Resposta do Instrutor

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

class Programa
{
    static void Main(String args[])
    {
        // De 1900.0 até 2800.0 o IR é de 7.5% e pode deduzir R$ 142
        // De 2800.01 até 3751.0 o IR é de 15% e pode deduzir R$ 350
        // De 3751.01 até 4664.00 o IR é de 22.5% e pode deduzir R$ 636

        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");
        }
    }
}

Minha Resposta

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Aliquota
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Iniciando o Projeto Aliquota");

            double salario = 3300.0;

            if (salario >= 1900.0 && salario <= 2800.0)
            {
                Console.WriteLine("IR é de 7,5%");
                Console.WriteLine("Você pode deduzir na declaração o valor de R$142");
            }

            if(salario >= 2800.01 && salario <= 3751.0)
            {
                Console.WriteLine("IR é de 15%");
                Console.WriteLine("Você pode deduzir na declaração o valor de R$350");
            }

            if(salario >= 3751.01 && salario <= 4664.0)
            {
                Console.WriteLine("IR é de 22.5%");
                Console.WriteLine("Você pode deduzir na declaração o valor de R$636");
            }

            Console.ReadLine();

        }
    }
}
1 resposta
solução!

Boa noite José

Tudo certo?

Então quando você usa o If o compilador vai executar ele primeiramente e se a condição for True vai executar o bloco abaixo, caso o resultado for False ele vai ir para o próximo else if e o compilar vai executar a condição e entrar caso True, caso False vai para o próximo...

O seu código e do Instrutor vão funcionar, porém o seu código vai executar sempre os TRÊS IF e o do Instrutor seguindo a logica acima vai executar os IF conforme resultado das condições, lembrando quando algum IF der True os demais não são executados.

Por questões de performance o do Instrutor é o mais indicado.

Recomento executar o Debug para enter o fluxo da compilação.

Espero ter ajudado :)