Olá,
Na atividade "trabalhando com if" na aula "05.Controle de fluxo com if" do curso "C#:explorando a linguagem" existe um erro no código.
O código atual é:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
class Programa
{
static void Main(string[] args)
{
double salario = 1500.0;
if(salario < 2600.0)
Console.WriteLine("A sua aliquota é de 15%");
Console.WriteLine("Você pode deduzir até R$ 350");
if(salario < 3750.0)
Console.WriteLine("A sua aliquota é de 22,5%");
Console.WriteLine("Você pode deduzir até R$ 636");
}
}
Ao executar o código com um valor de salário menor que 2600 será printado os 4 textos, conforme a imagem, mesmo adicionando as chaves, o que seria a resulução do problema, segundo a plataforma.
O código correto deveria conter, além das chaves, o else. O código ficaria da seguinte forma:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
class Programa
{
static void Main(string[] args)
{
double salario = 1500.0;
if (salario < 2600.0)
{
Console.WriteLine("A sua aliquota é de 15%");
Console.WriteLine("Você pode deduzir até R$ 350");
}
else
{
if (salario < 3750.0)
{
Console.WriteLine("A sua aliquota é de 22,5%");
Console.WriteLine("Você pode deduzir até R$ 636");
}
}
}
}
Obs. Os valores de dedução também estão errados. Mas entendo que o objetivo seja apenas a didatica. Os valores corretos seriam: Caso desejem aplicar os valores aproximados, segue o código:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
class Programa
{
static void Main(string[] args)
{
double salario = 1500.0;
if (salario > 2820.0 && salario <3750.0)
{
Console.WriteLine("A sua aliquota é de 15%");
Console.WriteLine("Você pode deduzir até R$ 350");
}
else
{
if (salario > 3750.0 && salario < 4660.0)
{
Console.WriteLine("A sua aliquota é de 22,5%");
Console.WriteLine("Você pode deduzir até R$ 636");
}
}
}
}