C# while循环c中的Bool语句#

C# while循环c中的Bool语句#,c#,boolean,C#,Boolean,对于这个代码,我有一个goto开始;语句重复该部分,直到输入了有效的名称,但是我的老师不喜欢goto,所以我不得不更改它 目前这是我得到的,但我不知道为什么它不起作用。首先,程序甚至不会启动,因为稍后在代码中我使用了输入用户名,当我在bool语句中使用它时,它不会识别它。为了测试它,我后来删除了用户名行,程序打开了,但是跳过了bool语句 请帮我完成这项工作。谢谢 bool nameValidation = true; while (nameValidation == false) {

对于这个代码,我有一个goto开始;语句重复该部分,直到输入了有效的名称,但是我的老师不喜欢goto,所以我不得不更改它

目前这是我得到的,但我不知道为什么它不起作用。首先,程序甚至不会启动,因为稍后在代码中我使用了输入用户名,当我在bool语句中使用它时,它不会识别它。为了测试它,我后来删除了用户名行,程序打开了,但是跳过了bool语句

请帮我完成这项工作。谢谢

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