我陷入了一个c#问题,我无法让while循环结束。
userValue是在程序中较早输入的字符串。
字符串的格式为DateTime,新输入需要与原始userValue匹配。 I.E 确认用户原始出生日期。
我使用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();
}
}
答案 0 :(得分:4)
您可以在确认日期后使用中断语句,但不建议使用。
由于您已经实施了停止条件,因此只需在确认日期后将停止设置为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();
}
}
答案 1 :(得分:0)
确认后,在下面的代码行中使用 break; 。
答案 2 :(得分:0)
您已进入无限循环。无限循环通常是当用户没有满足对代码的一个或多个要求时跳转"退出循环要在目标完成后退出循环,请使用" break;",以退出当前循环。在嵌套循环的情况下,这可能需要多次发生
答案 3 :(得分:0)
您永远不会更改stop
的价值。