-1

Gostaria de saber se da para fazer com que esse código não pare quando eu digito uma letra ao invés de um número, apenas corrigindo e dizendo para digitar um número.

namespace calculadora 
{
  class Program {
    static void Main() {
      ConsoleKey bta = ConsoleKey.A;
      while (bta == ConsoleKey.Escape == false) {
        double n1, n2;
        Console.Clear();
        n1 = double.Parse(Console.ReadLine());
        ConsoleKey mais = Console.ReadKey().Key;
        if (mais == ConsoleKey.Add) {
          Console.WriteLine(" ");
          string b = Console.ReadLine();
          n2 = double.Parse(b);
          Console.WriteLine("{0} + {1} = {2}", n1, n2, n1 + n2);
        }
        if (mais == ConsoleKey.Subtract) {
          Console.WriteLine(" ");
          string b = Console.ReadLine();
          n2 = double.Parse(b);
          Console.WriteLine("{0} - {1} = {2}", n1, n2, n1 - n2);
        }
        if (mais == ConsoleKey.Multiply) {
          Console.WriteLine(" ");
          string b = Console.ReadLine();
          n2 = double.Parse(b);
          Console.WriteLine("{0} . {1} = {2}", n1, n2, n1 * n2);
        }
        if (mais == ConsoleKey.Divide) {
          Console.WriteLine(" ");
          string b = Console.ReadLine();
          n2 = double.Parse(b);
          double Res = n1 / n2;
          Console.WriteLine("{0} / {1} = {2}", n1, n2, Res);
        }
        Console.WriteLine(" ");
        bta = Console.ReadKey().Key;

      }
    }
  }
}
1

1 Resposta 1

-1

Você pode criar uma função pra fazer isso pra você, algo desse tipo:

public double ReadNumber() 
{
  var str = Console.ReadLine();
  while (!str.All(char.IsDigit) || string.IsNullOrEmpty(str))
  {
    Console.WriteLine("Entrada inválida, digite apenas números!");
    str = Console.ReadLine();
  }
  
  return double.Parse(str);
}

public static void Main()
{
  var numero = ReadNumber();
}

Você deve fazer log-in para responder a esta pergunta.

Esta não é a resposta que você está procurando? Pesquise outras perguntas com a tag .