Язык программирования C

Скачать в pdf «Язык программирования C»


Оператор continue напоминает break, но используется реже; он передает управление на следующую итерацию (проход) ближайшего цикла for, while или do. В цикле while или do это означает немедленную проверку условия, тогда как в цикле for дополнительно выполняется инкрементирование. Оператор continue применим только к циклам, но не к оператору switch. Если поставить continue внутри switch, в свою очередь находящегося внутри цикла, то управление будет передано на следующий проход этого цикла.


Например, следующий фрагмент кода обрабатывает только неотрицательные элементы массива а; отрицательные просто пропускаются:


for (i = 0; i < n; i++) {


if (a[i] < 0)    /* пропускаем отрицательные элементы */


continue;


}


… /* обрабатываем положительные элементы */


Оператор continue часто используется там, где следующая за ним часть цикла слишком длинная и сложная, так что выделение ее отступами в условном операторе ухудшает удобочитаемость.


В языке С имеется оператор goto — бездонный источник потенциальных неприятностей — и метки для перехода с его помощью. В техническом плане оператор goto никогда не бывает необходим, и на практике почти всегда легче обходиться без него. В этой книге он вообще не используется.


Тем не менее есть несколько ситуаций, в которых и goto может найти свое место под солнцем. Наиболее распространенная — это необходимость прекратить работу управляющей структуры с большим количеством вложений, например выйти сразу из двух и более вложенных циклов. Оператор break тут не применим непосредственно, поскольку он обеспечивает выход только из внутреннего, ближайшего цикла. Поэтому получаем вот что:


for ( … )


for (…) {


}


if (disaster) goto error;


error

Скачать в pdf «Язык программирования C»