我有一段代码,我试图让它使用户放入他们的名字,我希望它能识别它是否是一个真正的名字。所以为了保持简单,我只希望它只接受字母。C#if else停止继续的代码
我输入了一个有效的名字,它会继续执行下一段代码。但是,当我输入无效字符时,我收到“无效名称”消息,但在此之后,无论我输入什么内容,都只会说“无效名称”。
Console.WriteLine("Please Enter First Name");
bool isNotName = true;
string firstName = Console.ReadLine();
while (isNotName)
{
if (Regex.IsMatch(firstName, @"^[a-zA-Z]+$"))
{
{
Console.WriteLine("Welcome {0}", firstName);
}
isNotName = false;
}
else
{
Console.WriteLine("Invalid Name");
Console.ReadLine();
}
}
在这行你是在读的名字吗?或者,更好的是,您实际设置'firstName'的唯一线路是什么? – Groo
Obligatory“你有什么试过?” (通过你的代码,看看出了什么问题)和[Falsehoods Programmers Believe About Names](http://www.kalzumeus.com/2010/06/17/falsehoods-programmers-believe-about-names/)。此外,“无效名称”不是一个真正有用的错误,请解释用户如何输入有效名称。 – CodeCaster
尝试逐行浏览您的代码,下次观看变量的值 - 您将自己发现这些错误。 –