我遇到了一个C#问题,无法让while循环结束。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();
}
}
stop
的值或调用break
,因此它无法退出循环。 - Dave ZychDateTime.TryParse
来捕获解析失败,而不是使用异常。 - Heretic Monkeystop = 0;
然后stop != 0
应该始终为 false。 - 31eee384break;
命令提前终止它,或者让while循环知道条件已经满足以终止。一般来说,while (condition==true) { this.do(something); }
循环会一直持续下去,直到你的条件变为false。这不会是任意发生的;你需要以某种方式将该条件设置为false。 - EtherDragon