用什么代替"goto"-method?

And*_*524 0 c#

我对编程很新,而且我已经意识到人们不喜欢"goto"-methods.我想知道如何编写允许用户决定输入多少条目的代码?例如,在下面的代码中,用户输入一个名称,然后询问他/她是否想要输入另一个名字.我怎么能这样做而不必使用go-to方法?

public class GoToTest
{
    public static void Main()
    {
        InputName:
        string name;
        Console.Write("Input name: ");
        name = Console.ReadLine();

        string decision;
        Console.WriteLine(""); //Empty line for increased readability
        Console.WriteLine("Would you like to input another name? Yes - No");
        decision = Console.ReadLine();
        if (decision == "Yes")
        {
            goto InputName;
        }
        else
        {
            Console.WriteLine("Name is " + name);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

usr*_*usr 5

这样做的一个好模式是在满足特定条件时中断的"无限"循环:

while (true) {
 var input = GetInputFromConsole();
 if (input == "exit")
  break;
}
Run Code Online (Sandbox Code Playgroud)

while循环的结束括号几乎是顶部的结果.然而,这比goto更好,因为循环为变量和视觉缩进提供了范围.它更容易理解.