#c_sharp #циклы
Есть двойной цикл for for (int i = 0; i < 10; i++) { for (int l = 0; l < 20; l++) { if (....) { .... } else { break; } } } Из второго цикла я выхожу, но как потом сразу выйти из первого цикла ?
Ответы
Ответ 1
Для выхода из вложенных циклов со сложной структурой может применяться оператор goto for (int i = 0; i < 10; i++) { for (int l = 0; l < 20; l++) { if (....) { .... } else { goto LoopEnd; } } } LoopEnd: ... Альтернативным решением может стать помещение основного цикла в функцию, и применение оператора return public void Loop() { for (int i = 0; i < 10; i++) { for (int l = 0; l < 20; l++) { if (....) { .... } else { return; } } } }Ответ 2
Можно использовать дополнительный флаг: var flag = true; for(int i=0; flag && i<10; i++) { for (int l=0; flag && l<20; l++) { if (....) { .... } else { flag = false; break; } } }Ответ 3
Еще один вариант: for (int i = 0; i < 10; i++) { for (int l = 0; l < 20; l++) { if (false) { System.Console.WriteLine(":)"); } else { i = Int32.MaxValue - 1; break; } } }
Комментариев нет:
Отправить комментарий