- •Лабораторная работа №15 (JavaScript) Теоретическая часть Символы
- •Чувствительность к регистру
- •Пробелы, переводы строк и символы управления форматом
- •Комментарии
- •Идентификаторы и зарезервированные слова
- •Типы данных
- •Простые типы данных Числа
- •Арифметические операции
- •Дата и время
- •Задание №1
- •Задание №2
- •Работа со строками
- •Логические значения
- •Значения null и undefined
- •Объявление переменных
- •Область видимости переменной
- •Оператор if/else
- •If (выражение)
- •If (выражение)
- •Оператор else if
- •Оператор switch
- •Тернарный оператор ?:
- •Цикл while
- •Цикл do/while
- •Цикл for
- •Цикл for/in
- •Оператор break
- •Оператор continue
- •Оператор return
- •Задание №3
- •Контрольные задания
- •Порядок выполнения лабораторной работы
- •Порядок защиты лабораторной работы
Оператор 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;
}
