Циклы представляют собой блоки команд, которые могут повторно выполняться.
ТвитнутьЦикл - это блок команд, который может повторно выполняться пока определенное условие не будет выполнено.
В JavaScript поддерживает следующие виды циклов:
Цикл for исполняет блок команд пока заданное условие является истинным.
Синтаксис:
for (блок определения;условие;блок изменения) {
//Блок команд, который будет повторно выполняться пока условие истинно
}
Когда цикл for начинает исполнение происходит следующее:
Цикл while выполняет блок кода, пока заданное условие истинно.
Цикл while выполняет действия аналогичные циклу for и отличается от него только синтаксисом.
Синтаксис:
while (условие) {
//Блок команд, который будет повторно выполняться если условие истинно
}
Перепишем код из предыдущего примера под цикл while:
Цикл do..while часто называют циклом с постусловием, потому что в отличие от предыдущих циклов он вначале исполняет блок команд и только потом проверяет заданное условие.
Если условие истинно блок команд выполняется еще раз, если условие ложно цикл завершает исполнение.
Синтаксис:
do {
//Блок команд, который будет выполнен больше одного раза если условие истинно
}
while (условие);
В примере ниже цикл do..while исполнит блок кода несмотря на то, что условие ложно изначально.
Пример
var i=20;
do {
document.write('Если Вы видите этот текст код в цикле был исполнен.');
}
while (i<=3);
С помощью команды break Вы можете досрочно "обрывать" выполнение цикла.
Пример
//Задаем цикл, который должен выводить значения от 1 до 20
for (i=1;i<=20;i++) {
document.write(i + '<br />');
//Прервем выполнения цикла после того, как он досчитает до 5
if (i==5) {
break;
}
}
Команда continue обрывает текущую итерацию выполнения цикла и переходит к следующей.
Пример
//Задаем цикл который должен выводить значения от 1 до 15
for (i=1;i<=15;i++) {
//Пропустим 3, 10 и 13 круг выполнения цикла
if (i==3) {
continue;
}
else if (i==10) {
continue;
}
else if (i==13) {
continue;
}
document.write(i+'<br />');
}
Цикл for..in используется для перебора массивов или объектов.
В ходе выполнения цикла переменная будет поочередно принимать значения всех элементов массива или всех свойств объекта.
Синтаксис:
for (переменная in объект_или_массив) {
//Код, который будет выполнен для каждого элемента массива или свойства объекта
}
переменная данной переменной будет поочередно присвоено каждое свойство "перебираемого" объекта или каждый номер элемента массива.
Пример
//Зададим переменную, которой поочередно будут присваиваться все элементы массива
var y;
//Создадим массив с произвольными элементами
var favcity = new Array();
favcity[1]='Москва';
favcity[2]='Нью-Йорк';
favcity[3]='Лондон';
favcity[4]='Берлин';
//Выведем все элементы массива с помощью for..in
for (y in favcity) {
document.write('Мой любимый город № '+y+' '+favcity[y]+'.<br />');
}
Задание 1. Сократите код используя циклы:
Задание 1
<script type='text/javascript'>
document.write('Число: <b>100</b>');
document.write('<br />');
document.write('Число: <b>80</b>');
document.write('<br />');
document.write('Число: <b>60</b>');
document.write('<br />');
document.write('Число: <b>50</b>');
document.write('<br />');
document.write('Число: <b>40</b>');
document.write('<br />');
document.write('Число: <b>20</b>');
document.write('<br />');
document.write('Число: <b>10</b>');
document.write('<br />');
document.write('Число: <b>0</b>');
</script>
Задание 2. Исправьте ошибки в коде ниже:
Задание 2
function fun1() {
for (i=1,i<=10,i++); {
document.write(i + '<br />');
}
}
function fun2() {
for (i=100;i=>0;i-=10); {
document.write(i + '<br />');
}
}
function fun3() {
i=40;
while (i>=0)
if (i==25)
Cantinue;
document.write(i + '<br />');
i-=5;
}