Книга: JavaScript. Подробное руководство, 6-е издание
5.6.2. Инструкция break
5.6.2. Инструкция break
Инструкция break
приводит к немедленному выходу из самого внутреннего цикла или инструкции switch
. Синтаксис ее прост:
break;
Поскольку инструкция break приводит к выходу из цикла или инструкции switch
, такая форма break
допустима только внутри этих инструкций.
Выше мы уже видели примеры использования инструкции break
внутри инструкции switch
. В циклах она обычно используется для немедленного выхода из цикла, когда по каким-либо причинам требуется завершить выполнение цикла. Когда цикл имеет очень сложное условие завершения, зачастую проще бывает реализовать эти условия с помощью инструкций break
, чем пытаться выразить их в одном условном выражении цикла. Следующий пример пытается отыскать элемент массива с определенным значением. Цикл завершается обычным образом по достижении конца массива или с помощью инструкции break
, как только будет найдено искомое значение:
for(var і = 0; і < a.length; i++) {
if (a[і] == target) break;
}
В языке JavaScript допускается указывать имя метки за ключевым словом break
(идентификатор без двоеточия):
break имя_метки;
Когда инструкция break
используется с меткой, она выполняет переход в конец именованной инструкции или прекращение ее выполнения. В случае отсутствия инструкции с указанной меткой попытка использовать такую форму инструкций break
порождает синтаксическую ошибку. Именованная инструкция не обязана быть циклом или инструкцией switch
: инструкция break
с меткой может выполнять «выход» из любой вмещающей ее инструкции. Объемлющая инструкция может даже быть простым блоком инструкций, заключенным в фигурные скобки исключительно с целью пометить его.
Между ключевым словом break
и именем метки не допускается вставлять символ перевода строки. Дело в том, что интерпретатор JavaScript автоматически вставляет пропущенные точки с запятой: если разбить строку программного кода между ключевым словом break и следующей за ним меткой, интерпретатор предположит, что имелась в виду простая форма этой инструкции без метки, и добавит точку с запятой (раздел 2.5).
Инструкция break
с меткой необходима, только когда требуется прервать выполнение инструкции, не являющейся ближайшим объемлющим циклом или инструкцией switch
. Следующий фрагмент демонстрирует это:
var matrix = getData(); // Получить 2-мерный массив чисел откуда-нибудь
// Найти сумму всех чисел в матрице,
var sum = 0,
success = false;
// Пометить инструкцию, выполнение которой требуется прервать в случае ошибки
compute_sum: if (matrix) {
for(var x = 0; x < matrix.length; x++) {
var row = matrix[x];
if (!row) break compute_sum;
for(var у = 0; у < row.length; y++) {
var cell = row[y];
if (isNaN(cell)) break compute_sum;
sum += cell;
}
}
success = true;
}
// Здесь инструкция break выполняет переход. Если будет выполнено условие
// success == false, значит, что-то не так в полученной матрице.
// В противном случае переменная sum будет содержать сумму всех элементов матрицы.
Наконец, обратите внимание, что инструкция break
, с меткой или без нее, не может передавать управление через границы функций. Например, нельзя пометить инструкцию объявления функции и затем использовать эту метку внутри функции.
- Перерыв (Break)
- 3.8 Инструкция goto и метки
- 5.4.3. Инструкция switch
- 5.6.3. Инструкция continue
- 5.6.4. Инструкция return
- 5.6.6. Инструкция try
- 3.7 Инструкции break и continue
- Инструкция IIF
- Инструкция INSERT INTO ... FROM ... UNION ...
- Что дает грамотная должностная инструкция
- При запуске программы появляется сообщение Инструкция по адресу 0х77ddb1d1 обратилась к памяти по адресу 0x0080002c. Пам...
- Инструкция по обработке