Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
WEB - ЛР № 15.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
618.83 Кб
Скачать

Оператор break

Оператор break приводит к немедленному выходу из самого внутреннего цикла или оператора switch. Ранее мы уже видели примеры использования оператора break внутри оператора switch. В циклах он обычно используется для немедленного выхода из цикла, когда по каким-либо причинам требуется завершить выполнение цикла.

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

var arr = ['а','б','в','г','д'], result;

for (var i = 0; i < arr.length; i++)

{

// Ищем символ 'в' в массиве и прерываем цикл

if (arr[i] == 'в')

{

result = true;

break;

}

}

console.log((result) ? 'элемент найден' : 'элемент не найден');

Оператор continue

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

Оператор continue, как в форме без метки, так и с меткой, может использоваться только в теле цикла. Использование его в любых других местах приводит к синтаксической ошибке. Когда выполняется оператор continue, текущая итерация цикла прерывается и начинается следующая. Для разных типов циклов это означает разное:

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

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

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

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

Обратите внимание на различия в поведении оператора continue в циклах while и for. Цикл while возвращается непосредственно к своему условию, а цикл for сначала вычисляет выражение инкремента, а затем возвращается к условию. В следующем примере показано использование оператора continue без метки для выхода из текущей итерации цикла для четных чисел:

var sum = 0;

// Вычислить сумму не четных чисел от 0 - 10

for (var i = 0; i <= 10; i++)

{

// Если число четное вызываем новую итерацию цикла

if (i%2 == 0)

continue;

else

sum += i;

}

console.log(sum); // 25

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

Оператор return

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

function getSumArray(arr)

{

// Подсчитать сумму всех элементов массива

var sum = 0;

for (var i = 0; i < arr.length; i++)

sum += arr[i];

// Вернуть значение

return sum;

}

// Вызовем функцию с произвольным числовым массивом

console.log( getSumArray([1,2,3,4,5,6,7,8,9]) );

Если функция не имеет оператора return, при ее вызове интерпретатор будет выполнять инструкции в теле функции одну за другой, пока не достигнет конца функции, и затем вернет управление вызвавшей ее программе. В этом случае выражение вызова вернет значение undefined. Оператор return часто является последней инструкцией в функции, но это совершенно необязательно: функция вернет управление вызывающей программе, как только будет достигнут оператор return, даже если за ним следуют другие инструкции в теле функции.

Оператор return может также использоваться без выражения, тогда она просто прерывает выполнение функции и возвращает значение undefined вызывающей программе. Например:

function myFun(arr)

{

// Если массив содержит отриц. числа, прервать функцию

for (var i = 0; i < arr.length; i++)

if (arr[i] < 0) return;

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]