C # Перейти к использованию - что еще использовать здесь? - PullRequest
6 голосов
/ 24 сентября 2010

Я знаю, что использование goto - это то, чего большинство людей избегают, однако я читал в разных местах, что иногда полезно, если вам нужен простой код.В настоящее время у меня есть очень простая программа, которую нужно повторять, если пользователь выбирает так:

static void Main()
{
    Restart:
    ...

    string UserChoice=Console.ReadLine();
    if (UserChoice=="y")
    goto Restart;
}

Действительно ли использование goto здесь так плохо?Я просто не вижу другого способа повторить код без циклов и т. Д. Это кажется очень простым и понятным способом.Или я что-то упустил?

Ответы [ 11 ]

0 голосов
/ 24 сентября 2010

Лично мне никогда не приходилось использовать goto, и, как Ойвинд Бротен и Нуменор, заявили, что метод цикла является наилучшим способом решения этой задачи.

Тем не менее, есть один случай, когда я могу вспомнить, где было бы полезно goto

Поскольку переключатель «проваливается» недопустим в C # (вызывает ошибку компилятора):

switch (a) 
{ 
    case 3: 
        b = 7; 
    case 4: 
        c = 3; 
        break; 
    default: 
        b = 2; 
        c = 4; 
        break; 
}

Чтобы заставить его работать, вы можете использовать goto:

switch (a) 
{ 
    case 3: 
        b = 7;
        goto case 4;
    case 4: 
        c = 3; 
        break; 
    default: 
        b = 2; 
        c = 4; 
        break; 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...