Funció per controlar l'entrada de dades, de manera que només es permetin nombres enters. És a dir, nombres positius i negatius no decimals. L'única entrada que fa petar el programa és si es prem directament ENTER.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication4
{
class Program
{
static void Main(string[] args)
{
int numEnter;
numEnter = demanaNumeroEnter();
Console.WriteLine(numEnter);
} // FI DEL Main()
public static int demanaNumeroEnter()
{
int numEnter = 0;
String numeroEnter;
Console.WriteLine("Escriu un número enter:");
bool entradaValida = false;
do
{
numeroEnter = Console.ReadLine();
if (comprovaNumeroEnter(numeroEnter)) { entradaValida = true; }
else
{
entradaValida = false;
Console.WriteLine("Escriu NOMÉS numeros O BÉ '-' seguit de NÚMEROS:");
}
} while (!entradaValida);
if (entradaValida) { numEnter = Convert.ToInt32(numeroEnter); }
return numEnter;
} // FI FUNCIO demanaNumeroEnter()
public static Boolean comprovaNumeroEnter(String entrada)
{
bool entradaValida = true;
int i = 0;
while (entradaValida && i < entrada.Length)
{
if (i == 0 && entrada.IndexOf('-') == i)
{
entradaValida = true;
if (entrada.Length==1)
{
entradaValida = false;
}
else { i++; }
}
if (Char.IsNumber(entrada[i]))
{ entradaValida = true;
i++; }
else { entradaValida = false; }
}
return entradaValida;
} // FI FUNCIO comprovaNumeroEnter();
}
}
Comentaris
Publica un comentari a l'entrada