Я наткнувся на це питання вдруге тому, і я витягаю звідти частину матеріалу: чи існує назва конструкції 'break n'?
Це видається непотрібним складним способом для того, щоб люди повинні доручити програмі вийти з подвійного вкладеного циклу:
for (i = 0; i < 10; i++) {
bool broken = false;
for (j = 10; j > 0; j--) {
if (j == i) {
broken = true;
break;
}
}
if (broken)
break;
}
Я знаю, що підручники люблять говорити, що гото твердження - це чорт, і я сам їх зовсім не люблю, але чи це виправдовує виняток із правила?
Я шукаю відповіді, які стосуються 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;
необхідності.