Оператор break

В некоторых случаях может потребоваться прервать работу цикла до того момента, как он завершит свою работу в штатном порядке. Пусть, например, нам требуется, вывести наименьшее число, которое делится на 3 и на 11. Один из возможных алгоритмов решения этой задачи (помимо перемножения 3 и 11) заключается в том, что перепераются все числа подряд до тех пор, пока не появится число, обладающее этим свойством. Для этого нужно организовать цикл, где на каждой итерации увеличивается некоторый счетчик, и, когда будет найдено требуемое число, цикл прерывается. Следующий фрагмент кода, где для прерывания цикла используется оператор break демонстрирует эту идею:

for (int i=1; i<1000; i++) {

if ((i%3==0) && (i%11==0)) {

printf("%d\n",i);

break;

}

}

Обратите внимание на то, что в штатном порядке цикл должен остановиться после 1000 итераций, однако оператор break прерывает его после 33 и приводит к такому результату:

Оператор continue

Если прервать нужно только текущую итерацию, но не останавливать весь цикл, то следует использовать оператор continue. Рассмотрим пример, где выводятся все числа, не делящиеся на 3:

for (int i=0; i<20; i++) {

if (i%3==0) {

continue;

}

printf("%d ",i);

}

В этом цикле функция printf() расположена после оператора continue, поэтому при выполнении условия i%3==0 итерация прерывается, и до вызова функции программа не доходит. Однако сам цикл продолжается и завершается после того, как условие работы цикла i<20 становится ложным.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: