1
resposta

Ficou correto?

namespace WindowsFormsApplication2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {
            double valorDaNotaFiscal = 4000;
            double imposto;
            string x;

            if (valorDaNotaFiscal < 1000)
            {
                imposto = 1000 * 2/100;
                x = imposto.ToString();
                MessageBox.Show(x);
            }

            else if (valorDaNotaFiscal >= 1000 && valorDaNotaFiscal <= 3000)
            {
                imposto = 1000 * 2.5 / 100;
                x = imposto.ToString();
                MessageBox.Show("valor do imposto: " + x);            
            }
            else if (valorDaNotaFiscal >= 3000 && valorDaNotaFiscal < 7000)
            {
                imposto = 1000 * 2.8 / 100;
                x = imposto.ToString();
                MessageBox.Show("valor do imposto: " + x);
            }
            else
            {
                imposto = 1000 * 3 / 100;
                x = imposto.ToString();
                MessageBox.Show("valor do imposto: " + x);
            }
        }
    }
}
1 resposta

Olá, Tainá!

O código faz o mesmo que a opinião do instrutor, porém vou deixar algumas observações:

1) O código abaixo está incorreto quando valorDaNotaFiscal == 3000:

else if (valorDaNotaFiscal >= 1000 && valorDaNotaFiscal <= 3000)
            {
                imposto = 1000 * 2.5 / 100;
                x = imposto.ToString();
                MessageBox.Show("valor do imposto: " + x);            
            }

Pois a regra diz que o valor tem que ser menor que 3000:

Se o valor for maior ou igual a 1000 e menor do que 3000, o imposto deve ser de 2.5%

2) Você poderia simplificar as condições, pois existe redundância:

Em vez de:

            if (valorDaNotaFiscal < 1000)
            {
            }
            else if (valorDaNotaFiscal >= 1000 && valorDaNotaFiscal <= 3000)
            {
            }
            else if (valorDaNotaFiscal >= 3000 && valorDaNotaFiscal < 7000)
            {
            }
            else
            {
            }

Poderia ser:

            if (valorDaNotaFiscal < 1000)
            {
            }
            else if (valorDaNotaFiscal < 3000)
            {
            }
            else if (valorDaNotaFiscal < 7000)
            {
            }
            else
            {
            }

3) Pelo princípio DRY (Don't Repet Yourself, ou Não Repita a Si Mesmo), você deveria evitar duplicação do código abaixo, deixando no final:

                x = imposto.ToString();
                MessageBox.Show("valor do imposto: " + x);

E então ficaria assim:

            if (valorDaNotaFiscal < 1000)
            {
                imposto = 1000 * 2/100;
            }
            else if (valorDaNotaFiscal < 3000)
            {
                imposto = 1000 * 2.5 / 100;
            }
            else if (valorDaNotaFiscal < 7000)
            {
                imposto = 1000 * 2.8 / 100;
            }
            else
            {
                imposto = 1000 * 3 / 100;
            }
            x = imposto.ToString();
            MessageBox.Show("valor do imposto: " + x);

É isso aí. Boa sorte e bons estudos!

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