C# while循环c中的Bool语句#
对于这个代码,我有一个goto开始;语句重复该部分,直到输入了有效的名称,但是我的老师不喜欢goto,所以我不得不更改它 目前这是我得到的,但我不知道为什么它不起作用。首先,程序甚至不会启动,因为稍后在代码中我使用了输入用户名,当我在bool语句中使用它时,它不会识别它。为了测试它,我后来删除了用户名行,程序打开了,但是跳过了bool语句 请帮我完成这项工作。谢谢C# while循环c中的Bool语句#,c#,boolean,C#,Boolean,对于这个代码,我有一个goto开始;语句重复该部分,直到输入了有效的名称,但是我的老师不喜欢goto,所以我不得不更改它 目前这是我得到的,但我不知道为什么它不起作用。首先,程序甚至不会启动,因为稍后在代码中我使用了输入用户名,当我在bool语句中使用它时,它不会识别它。为了测试它,我后来删除了用户名行,程序打开了,但是跳过了bool语句 请帮我完成这项工作。谢谢 bool nameValidation = true; while (nameValidation == false) {
bool nameValidation = true;
while (nameValidation == false) {
Console.Write("Enter your name: "); // Asks for your name
userName = Console.ReadLine();
if (Regex.IsMatch(userName, @"^[a-zA-Z- ]+$")) // Validates the input containts characters and/or spaces
{
nameValidation = true;
}
else // Error message if the input is not valid
{
Console.Clear(); // Clear screen
Console.WriteLine("Please enter a valid name.");
nameValidation = false;
}
}
将名称avalidation设置为false
bool nameValidation = false;
while (nameValidation == false) {
Console.Write("Enter your name: "); // Asks for your name
userName = Console.ReadLine();
if (Regex.IsMatch(userName, @"^[a-zA-Z- ]+$")) // Validates the input containts characters and/or spaces
{
nameValidation = true;
}
else // Error message if the input is not valid
{
Console.Clear(); // Clear screen
Console.WriteLine("Please enter a valid name.");
nameValidation = false;
}
}
因为在顶部,您将
namevalization
设置为true,所以它永远不会执行循环。只有当nameValidation
为false时,才会执行循环。由于条件错误,因此不会执行循环。您将bool变量初始化为true,并且希望在变量为false时循环工作,因此将第一行更改为bool nameValidation=true代码>,它会很好的工作啊,谢谢大家,这很有效,但是我仍然有一个问题,如果我以后在程序中使用用户名字符串,我将无法打开,我会得到“使用未分配的局部变量”的错误nvm修复了它,非常感谢ever1