[英]How to properly use while loop with null int values for user input in C#
我基本上是在尝试继续循环,直到用户输入所需的输入。 如果输入小于 1 或大于 7,我就可以使用它。 但是,如果用户输入空格字符或只是按 ENTER,我仍然会收到“未处理的异常”错误。 非常感谢任何帮助或建议。
这是代码-
static void Main(string[] args)
{
string[] daysOfWeek = {
"Sunday",
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday"
};
System.Console.WriteLine(" Which day would you like?");
System.Console.Write(" Choose from 1 and 7. ");
int? iDay = int.Parse(Console.ReadLine());
// Loops until user enters number from 1 - 7
while ( iDay < 1 || iDay > 7 || iDay is null )
{
if ( iDay > 0 && iDay < 8)
{
break;
}
System.Console.Write(" < INVALID - CHOOSE FROM 1 AND 7 > ");
iDay = int.Parse(Console.ReadLine());
}
string chosenDay = daysOfWeek[(int)iDay-1];
System.Console.WriteLine($"You chose {chosenDay}.");
使用int.TryParse
bool isValid = int.TryParse(Console.ReadLine(), out int iDay);
// Loops until user enters number from 1 - 7
while (!isValid || iDay < 1 || iDay > 7)
{
// This is redundant to the while clause
//if (iDay > 0 && iDay < 8)
//{
// break;
//}
System.Console.Write(" < INVALID - CHOOSE FROM 1 AND 7 > ");
isValid = int.TryParse(Console.ReadLine(), out iDay);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.