S'il vous plaît voir mon code ci-dessous.
Console.WriteLine("Enter a number between 1 and 5"); string _numberInt = Console.ReadLine(); Convert.ToInt32(_numberInt); if (_numberInt != "1, 5") { throw new System.ArgumentException("Please use a number between 1-5."); }
4 Réponses :
Vous avez besoin d'un pendant que code> en boucle pour vérifier à plusieurs reprises et que l'utilisateur entrait un numéro jusqu'à ce que la condition soit appariée. C'est ce que vous voulez:
while (true) {
Console.WriteLine("Enter a number between 1 and 5 > ");
int _numberInt = Convert.ToInt32(Console.ReadLine());
if (_numberInt <= 5 && _numberInt >= 1) { // Check if number is between 1 and 5
break; // Number is between 1 and 5. Break.
}
else { // Number is not between 1 and 5
throw new System.ArgumentException("Please use a number between 1-5.");
}
}
int uservalue; for(;;) // what kind of loop you use doesn't really matter { Console.WriteLine("Enter a number between 1 and 5"); // use TryParse to validate and convert user input. // "continue" immediatly goes back to start of loop (= next iteration) if( !int.TryParse(Console.ReadLine(), out uservalue)) continue; // check for correct value range if(5 >= uservalue && uservalue >= 1) break; } Console.WriteLine("You entered {0}", uservalue);
Je pense que cela devrait faire ce dont vous avez besoin. Cela ne jette pas cependant une exception. Il n'a pas besoin de, n'est-ce pas?
Vous devez utiliser les > = code> et
des opérateurs pour vérifier l'entrée après avoir essayé de le convertir d'une chaîne à un numéro:
while(true)
{
Console.WriteLine("Enter a number between 1 and 5");
var input = Console.ReadLine();
if(int.TryParse(input, out var value) && value >= 1 && value <= 5)
{
Console.WriteLine("Thanks");
break;
}
else
{
Console.WriteLine("invalid input")
}
}
Recherche Comment créer un
pendant code> boucle.
et comment vérifier un "entre" -Condition
Vous avez besoin d'une boucle, ne jetez pas une exception, n'utilisez pas de convertir, utilisez Tryparse, utilisez un integer var et utilisez <= et> = opérateurs.
Ne pas utiliser d'exception pour un contrôle de flux .
argumentException code> est lorsque la méthode reçoit un mauvais argument. Si vous appelez une méthode (à l'intérieur
essayer / attraper code>) tout irait bien, mais d'organiser une boucle - ne le faites pas.
Merci pour vos commentaires tout. Je ferai d'autres recherches!