JavaScript. Подробное руководство, 6-е издание, стр. 55

<b>var matrix = getData(); // Получить 2-мерный массив чисел откуда-нибудь </b>

<b>// Найти сумму всех чисел в матрице, </b>

<b>var sum = 0, </b>

<b>success = false;</b>

<b>// Пометить инструкцию, выполнение которой требуется прервать в случае ошибки </b>

<b>compute_sum: if (matrix) {</b>

<b>  for(var x = 0; x &lt; matrix.length; x++) { </b>

<b>    var row = matrix[x]; </b>

<b>    if (!row) break compute_sum; </b>

<b>    for(var у = 0; у &lt; row.length; y++) { </b>

<b>      var cell = row[y]; </b>

<b>      if (isNaN(cell)) break compute_sum; </b>

<b>      sum += cell;</b>

<b>    }</b>

<b>  }</b>

<b>  success = true;</b>

<b>}</b>

<b>// Здесь инструкция break выполняет переход. Если будет выполнено условие </b>

<b>// success == false, значит, что-то не так в полученной матрице.</b>

<b>// В противном случае переменная sum будет содержать сумму всех элементов матрицы.</b>

Наконец, обратите внимание, что инструкция

<b>break</b>
, с меткой или без нее, не может передавать управление через границы функций. Например, нельзя пометить инструкцию объявления функции и затем использовать эту метку внутри функции.

5.6.3. Инструкция continue

Инструкция

<b>continue</b>
схожа  с инструкцией
<b>break</b>
. Однако вместо выхода из цикла инструкция
<b>continue</b>
запускает новую итерацию цикла. Синтаксис инструкции
<b>continue</b>
столь же прост, как и синтаксис инструкции
<b>break</b>
:

<b>continue;</b>

Инструкция

<b>continue</b>
может также использоваться с меткой:

<b>continue имя_метки\</b>

Инструкция

<b>continue</b>
, как в форме без метки, так и с меткой, может использоваться только в теле цикла. Использование ее в любых других местах приводит к синтаксической ошибке.

Когда выполняется инструкция

<b>continue</b>
, текущая итерация цикла прерывается и начинается следующая. Для разных типов циклов это означает разное:

• В цикле

<b>while</b>
указанное в начале цикла выражение проверяется снова, и если оно равно
<b>true</b>
, тело цикла выполняется с начала.

• В цикле

<b>do/while</b>
происходит переход в конец цикла, где перед повторным выполнением цикла снова проверяется условие.

• В цикле

<b>for</b>
вычисляется выражение инкремента и снова вычисляется выражение проверки, чтобы определить, следует ли выполнять следующую итерацию.

• В цикле

<b>for/in</b>
цикл начинается заново с присвоением указанной переменной имени следующего свойства.

Обратите внимание на различия в поведении инструкции

<b>continue</b>
в циклах
<b>while</b>
и
<b>for</b>
: цикл
<b>while</b>
возвращается непосредственно к своему условию, а цикл
<b>for</b>
сначала вычисляет выражение инкремента, а затем возвращается к условию. Ранее при обсуждении цикла
<b>for</b>
объяснялось поведение цикла
<b>for</b>
в терминах «эквивалентного» цикла
<b>while</b>
. Поскольку инструкция
<b>continue</b>
ведет себя в этих двух циклах по-разному, точно имитировать цикл
<b>for</b>
с помощью одного цикла
<b>while</b>
невозможно.

В следующем примере показано использование инструкции

<b>continue</b>
без метки для выхода из текущей итерации цикла в случае ошибки:

<b>for(i = 0; 1 &lt; data.length; i++) {</b>

<b>  if (!data[і]) continue; // He обрабатывать неопределенные данные</b>

<b>  total += data[i];</b>

<b>}</b>

Инструкция

<b>continue</b>
, как и
<b>break</b>
, может применяться во вложенных циклах в форме, включающей метку, и тогда заново запускаемым циклом необязательно будет цикл, непосредственно содержащий инструкцию
<b>continue</b>
. Кроме того, как и для инструкции
<b>break</b>
, переводы строк между ключевым словом continue и именем метки не допускаются.

5.6.4. Инструкция return

Как вы помните, вызов функции является выражением и подобно всем выражениям имеет значение. Инструкция

<b>return</b>
внутри функций служит для определения значения, возвращаемого функцией. Инструкция
<b>return</b>
имеет следующий синтаксис:

<b>return выражение;</b>

Инструкция

<b>return</b>
может располагаться только в теле функции. Присутствие ее в любом другом месте является синтаксической ошибкой. Когда выполняется инструкция
<b>return</b>
, функция возвращает значение выражения вызывающей программе. Например: