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

Invalidar entradas na Console

Boa tarde, no terceiro curso de C foi ensinado a invalidar entradas da console, eu gostaria de saber como invalidar no c# com o Console.ReadLine();. Por exemplo:

int x = Convert.ToInt32(Console.ReadLine());

Se o usuário digitar algo diferente de números inteiros irá lançar uma exceção, como fazer com que a console ignore comandos diferentes de ENTER, 0 até 9?

4 respostas

Olá Renan!

Eu faria da seguinte forma:

try {
    int i = Convert.ToInt32(Console.ReadLine());
} 
catch(FormatException e){
    throw new FormatException("Só é permitido a entrada de numeros inteiros 0-9");
}

Espero ter ajudado! :D

Então cara, mas eu queria que o programa continuasse mesmo assim, tipo que aparecesse a mensagem e ele pudesse mandar outro comando, eu cheguei a fazer isso.

solução!

Oi Renan tudo bem?

Dá uma olhada nesse código ele fica em loop while até o usuário digitar um número inteiro.

using System;

public class Program
{
    public static void Main()
    { 
    bool prosseguir = false;
    while (prosseguir==false){
      Console.WriteLine("Digite um número inteiro");
      string x = Console.ReadLine();
      int value;
      if(int.TryParse(x, out value)){
        Console.WriteLine("É inteiro");    
        prosseguir=true;
      } else {
        Console.WriteLine("Não é inteiro");
      }
    }
    }
}

Era exatamente isso que eu queria obrigado :)