C# goto命令没有';行不通

C# goto命令没有';行不通,c#,switch-statement,goto,C#,Switch Statement,Goto,当我在没有goto命令的情况下编写代码时,它可以工作,但是当我添加:Start时,它会得到一个8错误 以下是相关代码: :Start Console.Write("Do you want the yes or no?"); string what = Console.ReadLine(); switch (what) { case "yes": Console.

当我在没有goto命令的情况下编写代码时,它可以工作,但是当我添加
:Start
时,它会得到一个8错误

以下是相关代码:

        :Start
        Console.Write("Do you want the yes or no?");
        string what = Console.ReadLine();
        switch (what)
        {
            case "yes":
                Console.WriteLine("You choose yes");
                break;
            case "no":
                Console.WriteLine("You choose no");
                break;
            default:
                Console.WriteLine("{0},is not a word",what);
                goto Start;
         }
尝试“开始:”而不是“:开始” 像这样:

 Start:
            Console.Write("Do you want the yes or no?");
            string what = Console.ReadLine();
            switch (what)
            {
                case "yes":
                    Console.WriteLine("You choose yes");
                    break;
                case "no":
                    Console.WriteLine("You choose no");
                    break;
                default:
                    Console.WriteLine("{0},is not a word", what);
                    goto Start;
            }

正确的语法是
开始:
。但是,您应该在循环中设置它,而不是
goto

bool invalid = true;
while (invalid)
{
    Console.Write("Do you want the yes or no?");
    string what = Console.ReadLine();
    switch (what)
    {
        case "yes":
            Console.WriteLine("You choose yes");
            invalid = false;
            break;
        case "no":
            Console.WriteLine("You choose no");
            invalid = false;
            break;
        default:
            Console.WriteLine("{0},is not a word",what);
     }
}

标签的正确语法是
Start:
,而不是
:Start

您可以重构代码以省略goto语句():


转到哪种语言?正确的标签语法:
Start:
请不要太习惯goto语句::DDon不要使用goto。人们普遍认为这是一种不好的做法,除了一些非常特殊的情况“goto命令不起作用”:最后<代码>而(无效)似乎更logical@AlexK. 是的,我同意。
bool continue = true;
while (continue) {
   Console.Write("Do you want the yes or no?");
   string what = Console.ReadLine();
   switch (what)
   {
        case "yes":
            Console.WriteLine("You choose yes");
            continue = false;
            break;
        case "no":
            Console.WriteLine("You choose no");
            continue = false;
            break;
        default:
            Console.WriteLine("{0}, is not a word",what);
            break;
    }
}