while 循环确认用户输入
While loop to confirm user input
我遇到了一个无法结束 while 循环的 c# 问题。
userValue 是在程序中较早输入的字符串。
字符串格式为DateTime,新的输入需要匹配原来的userValue。即 确认 用户的原始出生日期。
我使用 try / catch 来确定输入是否可以解析为 DateTime。
目前它只是一个持续循环,我正试图在验证用户出生日期后停止循环。
string userValueTwo;
int stop = 0;
while (stop != 0)
{
Console.WriteLine("Please verify your birth date");
userValueTwo = Console.ReadLine();
try
{
DateTime birthdayTwo = DateTime.Parse(userValueTwo);
}
catch
{
Console.WriteLine("You did not enter a valid format.");
Console.ReadLine();
}
if (userValueTwo == userValue)
{
Console.WriteLine("Birth date confirmed.");
Console.ReadLine();
}
else
{
Console.WriteLine("Your birthday did not match our records. Please try again");
Console.ReadLine();
}
}
确定后,在下面的代码行中使用break;。
您可以在确认日期后使用break语句,但不推荐。
因为你已经实现了一个停止条件,只要在确定日期后将stop设置为1,while循环就不会继续了运行。
这里有一个使用布尔值的更好的解决方案:
bool stop = false;
while (!stop)
{
Console.WriteLine("Please verify your birth date");
userValueTwo = Console.ReadLine();
try
{
DateTime birthdayTwo = DateTime.Parse(userValueTwo);
}
catch
{
Console.WriteLine("You did not enter a valid format.");
Console.ReadLine();
}
if (userValueTwo == userValue)
{
Console.WriteLine("Birth date confirmed.");
Console.ReadLine();
stop = true;
}
else
{
Console.WriteLine("Your birthday did not match our records. Please try again");
Console.ReadLine();
}
}
您已进入死循环。无限循环通常是在用户未满足 "hop" 代码的一项或多项要求时退出循环 要在满足 objective 后退出循环,请使用 "break;",以跳出当前循环。在嵌套循环的情况下,这可能需要发生不止一次
您永远不会更改 stop
的值。
我遇到了一个无法结束 while 循环的 c# 问题。
userValue 是在程序中较早输入的字符串。
字符串格式为DateTime,新的输入需要匹配原来的userValue。即 确认 用户的原始出生日期。
我使用 try / catch 来确定输入是否可以解析为 DateTime。
目前它只是一个持续循环,我正试图在验证用户出生日期后停止循环。
string userValueTwo;
int stop = 0;
while (stop != 0)
{
Console.WriteLine("Please verify your birth date");
userValueTwo = Console.ReadLine();
try
{
DateTime birthdayTwo = DateTime.Parse(userValueTwo);
}
catch
{
Console.WriteLine("You did not enter a valid format.");
Console.ReadLine();
}
if (userValueTwo == userValue)
{
Console.WriteLine("Birth date confirmed.");
Console.ReadLine();
}
else
{
Console.WriteLine("Your birthday did not match our records. Please try again");
Console.ReadLine();
}
}
确定后,在下面的代码行中使用break;。
您可以在确认日期后使用break语句,但不推荐。
因为你已经实现了一个停止条件,只要在确定日期后将stop设置为1,while循环就不会继续了运行。
这里有一个使用布尔值的更好的解决方案:
bool stop = false;
while (!stop)
{
Console.WriteLine("Please verify your birth date");
userValueTwo = Console.ReadLine();
try
{
DateTime birthdayTwo = DateTime.Parse(userValueTwo);
}
catch
{
Console.WriteLine("You did not enter a valid format.");
Console.ReadLine();
}
if (userValueTwo == userValue)
{
Console.WriteLine("Birth date confirmed.");
Console.ReadLine();
stop = true;
}
else
{
Console.WriteLine("Your birthday did not match our records. Please try again");
Console.ReadLine();
}
}
您已进入死循环。无限循环通常是在用户未满足 "hop" 代码的一项或多项要求时退出循环 要在满足 objective 后退出循环,请使用 "break;",以跳出当前循环。在嵌套循环的情况下,这可能需要发生不止一次
您永远不会更改 stop
的值。