C++ для начинающих

5.8. Инструкция break

Инструкция break останавливает циклы for, while, do while и блока switch. Выполнение программы продолжается с инструкции, следующей за закрывающей фигурной скобкой цикла или блока. Например, данная функция ищет в массиве целых чисел определенное значение. Если это значение найдено, функция сообщает его индекс, в противном случае она возвращает -1. Вот как выглядит реализация функции:

// возвращается индекс элемента или -1
int search( int *ia, int size, int value )
{
   // проверка что ia != 0 и size > 0 ...
   int loc = -1;
   for ( int ix = 0; ix < size; ++ix ) {
if ( value == ia[ ix ] ) {
// нашли!
// запомним индекс и выйдем из цикла
loc = ix;
break;
}
} // конец цикла // сюда попадаем по break ...
return loc;
}

В этом примере break прекращает выполнение цикла for и передает управление инструкции, следующей за этим циклом, – в нашем случае return. Заметим, что break выводит из блока, относящегося к инструкции for, а не if, хотя является частью составной инструкции, соответствующей if. Использование break внутри блока if, не входящего в цикл или в switch, является синтаксической ошибкой:

// ошибка: неверное использование break
if ( ptr ) {
   if ( *ptr == "quit" )
   break;
   // ...
}

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

while ( cin >> inBuf )
{
   switch( inBuf[ 0 ] ) {
      case '-':
         for ( int ix = 1; ix < inBuf.size(); ++ix ) {
            if ( inBuf[ ix ] == ' ' )
               break; // #1
         // ...
         // ...
         }
         break; // #2
      case '+':
         // ...
   }
}

Инструкция break, помеченная // #1, завершает выполнение цикла for внутри ветви case '-' блока switch, но не сам switch. Аналогично break // #2 завершает выполнение блока switch, но не цикла while, в который тот входит.

Назад   Вперед
Содержание



2012-09-13 13:06:15 gf

white = whiLe

2012-09-19 10:02:01 Вася

Тогда уж white != whiLe




Оставить комментарий:
Ваше Имя:
Email:
Антибот: *  
Ваш комментарий: