1
resposta

Saldo

Console.Write("Digite o saldo: ");
decimal saldo = decimal.Parse(Console.ReadLine()!);

if (saldo == 0)
{
Console.WriteLine("Saldo zerado");
}
else if (saldo >= 1)
{
Console.WriteLine("Saldo positivo");
}
else
{
Console.WriteLine("Saldo negativo");
}

1 resposta

Olá, Izabelly. Como vai?

Parabéns por compartilhar a sua resolução! A estrutura do seu if, else if e else está muito bem montada e a leitura dos dados usando o decimal.Parse está perfeita para trabalhar com dinheiro.

Para agregar ainda mais valor ao seu projeto, notei um pequeno detalhe na sua lógica matemática que pode gerar um bug (erro) com valores em centavos. Como você está usando o tipo decimal, o sistema permite a entrada de números quebrados.

Na sua condição else if (saldo >= 1), se o usuário tiver um saldo de 0.50 (cinquenta centavos), o C# vai entender que essa condição é falsa, pois 0.50 não é maior e nem igual a 1. Com isso, o código vai cair direto no bloco else e dizer que o saldo é negativo, sendo que 50 centavos é um valor positivo!

Para resolver isso de forma simples e cobrir todos os cenários, basta trocar a verificação para valores maiores que zero (> 0). O trecho ajustado ficaria assim:

  • if (saldo == 0) { Console.WriteLine("Saldo zerado"); }
  • else if (saldo > 0) { Console.WriteLine("Saldo positivo"); }
  • else { Console.WriteLine("Saldo negativo"); }

Dessa forma, qualquer valor positivo, mesmo que seja apenas um centavo, será lido e classificado corretamente pelo seu programa! Continue praticando, pois o seu código está muito limpo e organizado.

Espero que possa ter lhe ajudado!