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

Porque não precisa das chaves?

Não entendi muito bem porque na resolução do exercício não é necessário as chaves? Outra coisa, eu abro as chaves logo após a condição (conforme o código abaixo), tem algum problema em fazer isso?

    class Program
    {
        static void Main(string[] args)
        {
            double valorDaNotaFiscal = 1;
            double imposto;

            if (valorDaNotaFiscal < 1000) {
                imposto = 0.02 * valorDaNotaFiscal;
            } else if(valorDaNotaFiscal >= 1000 && valorDaNotaFiscal < 3000) {
                imposto = 0.025 * valorDaNotaFiscal;
            } else if(valorDaNotaFiscal >= 3000 && valorDaNotaFiscal < 7000) {
                imposto = 0.028 * valorDaNotaFiscal;
            } else {
                imposto = 0.03 * valorDaNotaFiscal;
            }

            Console.WriteLine("Imposto a ser pago: " + imposto);
        }
    }
3 respostas
solução!

Não precisa das chaves porque apenas uma linha está associada a cada if e a cada else. No c# o padrão das chaves é na linha debaixo.. não é obrigatório, mas é sempre seguir os padrões.

Obrigado Alberto!

Se o seu "if" possui apenas uma linha, você pode resolver com outras estruturas em alguns casos. Exemplo:

 if (valorDaNotaFiscal < 1000) {
     imposto = 0.02 * valorDaNotaFiscal;
 } else  {
         imposto = 0.025 * valorDaNotaFiscal;
 }

2) Mas poderia ser feito assim:

imposto = (valorDaNotaFiscal < 1000 ? 0.02 * valorDaNotaFiscal : imposto = 0.025 * valorDaNotaFiscal)

Esse segundo caso é só um exemplo.