}
А теперь рассмотрим более практический пример применения оператора break. В приведенной ниже программе выявляется наименьший множитель числа.
// Выявить наименьший множитель числа.
using System;
class FindSmallestFactor { static void Main() { int factor = 1; int num =-1000;
for (int i=2; i <= num/i;' i++) {
if((num%i) == 0) {
factor = inbreak; // прервать цикл, как только будет
// выявлен наименьший множитель числа
}
}
Console.WriteLine('Наименьший множитель равен ' + factor);
}
}
Результат выполнения этой программы выглядит следующим образом.
Наименьший множитель равен 2
Оператор break прерывает выполнение цикла for, как только будет выявлен наименьший множитель числа. Благодаря такому применению оператора break исключается опробование любых других значений после выявления наименьшего множителя числа, а следовательно, и неэффективное выполнение кода.
Если оператор break применяется в целом ряде вложенных циклов, то он прерывает выполнение только самого внутреннего цикла. В качестве примера рассмотрим следующую программу.
// Применить оператор break во вложенных циклах, using System;
class BreakNested { static void Main() {
for(int i=0; i<3; i++) {
Console.WriteLine('Подсчет во внешнем цикле: ' + i);
Console.Write(' Подсчет во внутреннем цикле: ');
int t = 0; while(t < 100) {
if(t == 10) break; // прервать цикл, если t равно 10 Console.Write(t + ' '); t++;
}
Console.WriteLine ();
}
Console.WriteLine('Циклы завершены.');
}
}
Выполнение этой программы дает следующий результат.
Подсчет во внешнем цикле: 0
Подсчет во внутреннем цикле: 0123456789 Подсчет во внешнем цикле: 1
Подсчет во внутреннем цикле: 0 1 2 3 4 5 б 7 8 9 Подсчет во внешнем цикле: 2
Подсчет во внутреннем цикле: 0123456789 Циклы завершены
Как видите, оператор break из внутреннего цикла вызывает прерывание только этого цикла, а на выполнение внешнего цикла он не оказывает никакого влияния.
В отношении оператора break необходимо также иметь в виду следующее. Во-первых, в теле цикле может присутствовать несколько операторов break, но применять их следует очень аккуратно, поскольку чрезмерное количество операторов break обычно приводит к нарушению нормальной структуры кода. И во-вторых, оператор break, выполняющий выход из оператора switch, оказывает воздействие только на этот оператор, но не на объемлющие его циклы.
Применение оператора continue
С помощью оператора continue можно организовать преждевременное завершение шага итерации цикла в обход обычной структуры управления циклом. Оператор continue осуществляет принудительный переход к следующему шагу цикла, пропуская любой код, оставшийся невыполненным. Таким образом, оператор continue служит своего рода дополнением