Я столкнулся с этим вопросом секунду назад, и я извлекаю часть материала оттуда: есть ли название для конструкции 'break n'?
Похоже, что это слишком сложный способ заставить людей дать команду программе выйти из двойного вложенного цикла for:
for (i = 0; i < 10; i++) {
bool broken = false;
for (j = 10; j > 0; j--) {
if (j == i) {
broken = true;
break;
}
}
if (broken)
break;
}
Я знаю, что в учебниках нравится говорить, что заявления goto - это дьявол, и я их совсем не люблю, но оправдывает ли это исключение из правила?
Я ищу ответы, которые касаются n-вложенных циклов.
ПРИМЕЧАНИЕ. Независимо от того, отвечаете ли вы «да», «нет» или где-то посередине, ответы совершенно не принимаются . Особенно, если ответ «нет», то предоставьте хорошую, законную причину (почему, в любом случае, это не слишком далеко от правил Stack Exchange).
goto
: goto (C # Reference) - «Оператор goto также полезен для выхода из глубоко вложенных циклов».
goto
фактически требуется в переключателе C # для перехода к другому случаю после выполнения любого кода внутри первого случая. Это единственный случай, когда я использовал goto.
for (j = 10; j > 0 && !broken; j--)
то вам не понадобитсяbreak;
оператор. Если вы переместите объявление вbroken
до того, как начнется внешний цикл, тогда, если это можно записать так, какfor (i = 0; i < 10 && !broken; i++)
я думаю, нетbreak;
необходимости.