Ejercicio
Función GetInt
Objetivo
Cree una función llamada "GetInt", que muestra en pantalla el texto recibido como parámetro, solicita al usuario un número entero, repite si el número no está entre el valor mínimo y el valor máximo que se indican como parámetros, y finalmente devuelve el número ingresado:
edad = GetInt("Introduce tu edad", 0, 150);
se convertiría:
Ingresa tu edad: 180
No es una respuesta válida. No debe ser más de 150.
Ingresa tu edad: -2
No es una respuesta válida. No debe ser inferior a 0.
Ingresa tu edad: 20
(el valor de la variable "edad" sería 20)
Código de Ejemplo
// Importing the System namespace to access basic system functions
using System;
class Program
{
// Main method where the program starts
public static void Main()
{
// Call the GetInt function and store the returned value in the age variable
int age = GetInt("Enter your age", 0, 150); // Get the user's age within a valid range
Console.WriteLine("Your age is: " + age); // Output the valid age entered by the user
}
// Function GetInt to request an integer from the user within a specified range
public static int GetInt(string prompt, int min, int max)
{
int result; // Variable to store the user's input
while (true) // Loop indefinitely until a valid input is given
{
Console.Write(prompt + ": "); // Display the prompt to the user
string input = Console.ReadLine(); // Read the user's input
// Check if the input can be converted to an integer
if (int.TryParse(input, out result))
{
// Check if the result is within the specified range
if (result < min)
{
Console.WriteLine($"Not a valid answer. Must be no less than {min}."); // Invalid if less than min
}
else if (result > max)
{
Console.WriteLine($"Not a valid answer. Must be no more than {max}."); // Invalid if greater than max
}
else
{
return result; // Return the valid result
}
}
else
{
Console.WriteLine("Not a valid integer. Please enter a valid number."); // Invalid if not an integer
}
}
}
}