ОПЕРАТОР break ("вывалиться из цикла")
Оператор break заставляет прервать выполнение тела цикла и сразу перейти к продолжению программы.
while(условие1){ операторы1;
if(условие2) break; ------->----+ | операторы2; | } | ...продолжение...<--------<---------+
и
for(i=0; условие1; i++){ операторы1;
if(условие2) break; ------->----+ | операторы2; | } | ...продолжение...<--------<---------+
Этот оператор позволяет организовывать дополнительные точки выхода из цикла (при дополнительных условиях).
Пример:
for(i=0; i < 20; i++){ printf("i=%d\n", i); if(i == 7){ printf("break loop!\n"); break; /* вывалиться из цикла */ } printf("more\n"); } printf("finished, i=%d\n", i); /* печатает 7 */
В частности, с его помощью можно организовывать бесконечный цикл:
for(;;){ /* заголовок бесконечного цикла */ операторы1;
if(условие2) break; ------->----+ | операторы2; | } | ...продолжение...<--------<---------+
Здесь в самом заголовке цикла НЕ ПРОВЕРЯЕТСЯ НИКАКИХ УСЛОВИЙ, такой цикл продолжается бесконечно. Условие продолжения считается всегда истинным.
Единственный способ выйти из него - это сделать break (при каком-то условии) в теле цикла, что и написано.
Бесконечный цикл можно также организовать при помощи while(1){ ... }