Программирование на C и C++

Онлайн справочник программиста на C и C++

BREAK

Оператор break имеет два назначения. Первое - это окончание работы оператора switch. Второе - это принудительное окончание цикла, минуя стандартную проверку условия. Данное назначение здесь и рассматривается. Когда оператор break встречается в теле цикла, цикл немедленно заканчивается и выполнение программы переходит на строку, следующую за циклом. Например:

#include <stdio.h>
int main(void)
{
int t;
for(t=0; t<100; t++)
{
printf ("%d ", t) ;
if (t==10) break;
}
return 0;
}

Данная программа выводит числа от 0 до 10 включительно и заканчивает работу, поскольку break вызывает немедленный выход из цикла, минуя условие t< 100.

Оператор break, как правило, используется в циклах, где особые условия могут вызвать немедленное завершение работы. Ниже приведен пример того, как нажатие на клавишу может остановить выполнение функции look_up():

int look_up(char *name)
{
char tname[40];
int loc;
loc = -1;
do
{
loc = read_next_name(tname);
if(kbhit ()) break;
}
while(!strcmp(tname, name));
return loc;
}

Можно использовать функции такого типа для поиска имени в файле базы данных. Если файл слишком длинный и надоело ждать, то можно нажать на клавишу и выйти из функции до окончания работы. Функция kbhit() возвращает 0, если не было нажатия. В противоположном случае она возвращает ненулевое значение, break вызывает выход из самого внутреннего цикла. Например:

for(t=0; t<100; ++t)
{
count = 1;
for(;;) {
printf ("%d ", count);
count++;
if (count == 10) break;
}
}

выводит числа от 1 до 10 включительно 100 раз. Каждый раз, когда встречается break, контроль передается внешнему циклу for.

break, используемый в операторе switch, влияет только на данный switch, но не на цикл, в котором может находиться switch.