Чтение онлайн

на главную - закладки

Жанры

HTML, XHTML и CSS на 100%

Квинт Игорь

Шрифт:

//Это единственный выход из бесконечного цикла

if (x==0) {break}

//Вложенный цикл, просматривающий все элементы массива

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

{

//Проверяем значение элемента массива a

if (a[i]==0)

{

b[i]="-";

//Прерываем текущую итерацию цикла for, чтобы избежать

//деления на ноль

continue;

}

//Находим частное

b[i]=x/a[i];

}//Конец цикла for

alert(a+"\n"x+"\n"+b);

}//Конец цикла while

</script>

</head>

<body>

</body>

</html>

Данный код позволяет определить частное от введенного пользователем числа и элементов массива a. При этом в числе элементов этого массива могут быть нули, тогда необходимо в элемент массива с результатом b ввести прочерк (—) (рис. 11.15).

Рис. 11.15. Пример использования операторов выхода из цикла

В вышеприведенном коде также демонстрируется возможность вложения одного цикла в другой. Из цикла while возможен выход, только если ввести нуль (значение по умолчанию). Цикл for во время исполнения иногда прерывается, если элемент массива a равен нулю, чтобы избежать деления на ноль.

11.5. Функции и события

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

Функции

Функция – это набор команд, объединенных под общим именем для выполнения некоторой задачи. Синтаксис функции имеет следующий вид:

function ИмяФункции([аргумент1][,..аргументN])

{

операторы

}

Ключевое слово function объявляет функцию с именем ИмяФункции. Функции могут передаваться (но могут и не передаваться) аргументы, которые перечисляются через запятую в скобках рядом с именем функции. В качестве аргументов могут выступать переменные, значения и выражения.

Использование функций

Функции можно объявлять в любом месте внутри элемента SCRIPT. Можно даже объявить функцию внутри другой функции, однако в этом случае она будет локальной, то есть будет действовать только внутри родительской функции. Тем не менее рекомендуется объявлять функцию в блоке HEAD до начала выполнения основного кода, иначе она может быть недоступной в момент вызова. В листинге 11.19 представлен пример работы с функциями.

Листинг 11.19. Пример использования функций

<html>

<head>

<title>Пример использования функций</title>

<script>

//Глобальный массив

var a= new Array (1,2,4,8);

function sum

{

var s=0; //локальная переменная для хранения суммы

//Цикл по всем элементам массива a

for (var i in a)

{

s=s+a[i];

}

alert("Сумма элементов массива="+s);

}

function product

{

var p=1; //локальная переменная для хранения произведения

for (var i in a)

{

p=p*a[i];

}

alert("Произведение элементов массива="+p);

}

</script>

</head>

<body>

<script>

var x=prompt("Найти сумму или произведение (0 или 1)?","0");

if (x=="0")

{

sum;

}

if (x=="1")

{

product;

}

</script>

</body>

</html>

При запуске этого кода отображается запрос, на который необходимо ввести 0 или 1. В зависимости от ответа запускается одна из функций: sum или product, которые находят сумму или произведение элементов глобального массива a соответственно.

Функции могут возвращать значение. Для этого необходимо использовать оператор возврата return. Вообще этот оператор может встречаться несколько раз в теле функции. Таким образом, функции можно использовать в выражениях (листинг 11.20).

Листинг 11.20. Использование значения функции

<html>

<head>

<title>Использование значения функции</title>

<script>

function sum(a,b)

{

return (a+b);

}

</script>

</head>

<body>

<script>

var x1=5, x2=6, x3=3, x4=3;

//Отображаем (x1+x2)*(x3+x4)

alert (sum(x1,x2)*sum(x3,x4));

</script>

</body>

</html>

Функция может объявляться в выражении. Обычно в этом случае функция присваивается переменной, которая затем может использоваться в выражении:

var cube=function(x){return x*x*x}

alert(cube(2)+cube(3));

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

Переменное количество аргументов

Иногда в процессе создания функции неизвестно, сколько ей передадут аргументов. В этом случае необходимо воспользоваться объектом arguments. Все аргументы, переданные функции, сохраняются в этом объекте и могут быть извлечены. Например, для доступа к первому аргументу можно использовать следующий код:

Поделиться:
Популярные книги

Русские горки. Конец Российского государства

Калюжный Дмитрий Витальевич
Великие противостояния
Научно-образовательная:
история
политика
6.00
рейтинг книги
Русские горки. Конец Российского государства

Инкарнатор

Прокофьев Роман Юрьевич
1. Стеллар
Фантастика:
боевая фантастика
рпг
7.30
рейтинг книги
Инкарнатор

Цикл романов "Целитель". Компиляция. Книги 1-17

Большаков Валерий Петрович
Целитель
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Цикл романов Целитель. Компиляция. Книги 1-17

Айрин

Даниэль Зеа Рэй
3. Дети Амира
Фантастика:
космическая фантастика
9.29
рейтинг книги
Айрин

Точка опоры

Коптелов Афанасий Лазаревич
Проза:
советская классическая проза
5.00
рейтинг книги
Точка опоры

Русские дети (сборник)

Фрай Макс
Проза:
современная проза
5.60
рейтинг книги
Русские дети (сборник)

Алхимик в Пустыне

Туулли Лана Борисовна
3. Алхимические хроники
Фантастика:
фэнтези
6.00
рейтинг книги
Алхимик в Пустыне

Прохоровское побоище. Правда о Величайшем танковом сражении

Замулин Валерий Николаевич
Мифы Великой Отечественной
Документальная литература:
прочая документальная литература
5.00
рейтинг книги
Прохоровское побоище. Правда о Величайшем танковом сражении

Политолог

Проханов Александр Андреевич
Проза:
современная проза
5.20
рейтинг книги
Политолог

Бесплодные земли (др. перевод)

Кинг Стивен
3. Темная Башня
Фантастика:
фэнтези
6.71
рейтинг книги
Бесплодные земли (др. перевод)

Роза ветров

Кас Маркус
6. Артефактор
Фантастика:
городское фэнтези
аниме
фэнтези
5.00
рейтинг книги
Роза ветров

Темный карнавал (сборник)

Брэдбери Рэй Дуглас
1. Сборники рассказов Рэя Брэдбери
Фантастика:
социально-философская фантастика
научная фантастика
ужасы и мистика
мистика
сказочная фантастика
7.71
рейтинг книги
Темный карнавал (сборник)

Лоенгрин, рыцарь Лебедя

Никитин Юрий Александрович
Фантастика:
фэнтези
боевая фантастика
5.50
рейтинг книги
Лоенгрин, рыцарь Лебедя

Дневники 1928-1929

Пришвин Михаил Михайлович
Документальная литература:
биографии и мемуары
5.00
рейтинг книги
Дневники 1928-1929