Циклы JavaScript
Циклы в JavaScript, как и в других языках программирования, позволяют выполнять блок кода определенное число раз.
for ( var i = 0; i < 5; i++ ) {
// Журналирует "попытка 0", "попытка 1", ..., "попытка 4".
console.log( "попытка " + i );
}
Отметьте, в циклах контекст переменной i
не определяется блоком цикла даже при том, что ключевое слово var
используется перед именем переменной. Контекст будет описан более подробно позднее.
Цикл for
Цикл for
состоит из четырех операторов и имеет следующее строение:
for ( [инициализация]; [условие]; [итерация] ) {
[телоЦикла]
}
Предложение инициализации выполняется только однажды, прежде, чем цикл запустится. Это дает Вам возможность приготовить или объявить любые переменные.
Условный выполняется перед каждой итерацией, и возвращаемое им значение определяет, должен ли цикл продолжаться. Если условный оператор определяет значение как ложное, то цикл останавливается.
Предложение итерации выполняется в конце каждой итерации и дает Вам возможность изменить состояние важных переменных. Как правило, оно включает постепенное увеличение или постепенное уменьшение счетчика и таким образом приближение цикла к его концу.
Предложение телоЦикла - то, что выполняется каждую итерацию. Оно может содержать что угодно. Как правило, это будет несколько операторов, которые должны быть выполнены, и они должны быть обернуты в блок ({...}
).
Вот типичный цикл for
:
for (var i = 0, limit = 100; i < limit; i++) {
// Этот блок будет выполнен 100 раз.
console.log( "Сейчас i = " + i );
// Заметьте: Последняя запись будет "Сейчас i = 99".
}
Цикл с условием продолжения while
Цикл while подобен оператору if
, за исключением того, что его тело продолжит выполняться до тех пор, пока условие не станет равным значению false.
while ( [условие] ) {
[телоЦикла]
}
Вот типичный цикл while
:
var i = 0;
while ( i < 100 ) {
// Этот блок будет выполнен 100 раз.
console.log( "Сейчас i = " + i );
i++; // Увеличение i
}
Заметьте, что счетчик постепенно увеличивается внутри тела цикла. Можно объединить условное выражение и инкремент, например так:
var i = -1;
while ( ++i < 100 ) {
// Этот блок будет выполнен 100 раз.
console.log( "Сейчас i = " + i );
}
Заметьте, что счетчик запускается с -1 и использует префиксный инкремент (++i
).
Цикл с условием продолжения do-while
Это - почти в точности то же самое, что и цикл while
, за исключением факта, что тело цикла выполняется, по крайней мере, один раз перед тем, как условие тестируется.
do {
[телоЦикла]
} while ( [условие] )
Вот пример цикла do-while
:
Пример
// Хотя условие равно false
// тело цикла все равно выполнится один раз.
alert( "Привет!" );
} while ( false );
Попробуйте Сами »
Эти типы циклов являются довольно редкими, так как есть немного ситуаций, требующих цикла, который обязательно должен быть выполнен, по крайней мере, одby раз. В любом случае, полезно знать об этом.
Остановка и Продолжение
Обычно, прерывание цикла происходит, когда условный оператор приводит к значению false, но возможно остановить цикл во время его выполнения внутри тела цикла с оператором break
:
// Остановка цикла
for ( var i = 0; i < 10; i++ ) {
if ( нечто ) {
break;
}
}
Можно также продолжить цикл, не выполняя оставшуюся часть тела цикла. Это делается, используя оператор continue
:
Пример
for ( var i = 0; i < 10; i++ ) {
if ( true ) {
continue;
}
// Следующий оператор будет выполнен,
// если Вы замените true на false
alert ( "Я достиг конца" );
}
Попробуйте Сами »