|
@@ -42,16 +42,16 @@
|
|
|
|
|
|
Однократное выполнение тела цикла называется **итерацией**.
|
|
|
|
|
|
-### Ключевые слова **break** и **continue**.
|
|
|
+### Ключевые слова `break` и `continue`.
|
|
|
|
|
|
Эти ключевые слова применяются в теле и позволяют изменять логику работы цикла:
|
|
|
|
|
|
-- **break** обрывает выполнение цикла в любом месте тела - программа продолжается после цикла;
|
|
|
-- **continue** обрывает выполнение текущей *итерации* и начинает следующую итерацию.
|
|
|
+- `break` обрывает выполнение цикла в любом месте тела - программа продолжается после цикла;
|
|
|
+- `continue` обрывает выполнение текущей *итерации* и начинает следующую итерацию.
|
|
|
|
|
|
-### Цикл **while**
|
|
|
+### Цикл `while`
|
|
|
|
|
|
-Цикл **while** выполняется, пока условие истинно и прекращает свое выполнение как только условие становится ложно:
|
|
|
+Цикл `while` выполняется, пока условие истинно и прекращает свое выполнение как только условие становится ложно:
|
|
|
|
|
|
```javascript
|
|
|
var password = '';
|
|
@@ -62,11 +62,11 @@ while (password != rightPassword){ //Пока пароль не равен ве
|
|
|
} //возвращаемся на while (....)
|
|
|
```
|
|
|
|
|
|
-Цикл **while** в некотором смысле схож с **if** - тело выполняется если условие верно; однако **if** выполняет тело однократно, а **while** выполняет
|
|
|
+Цикл `while` в некотором смысле схож с `if` - тело выполняется если условие верно; однако `if` выполняет тело однократно, а `while` выполняет
|
|
|
тело *пока* условие верно.
|
|
|
|
|
|
|
|
|
-#### **break**
|
|
|
+#### `break`
|
|
|
|
|
|
```javascript
|
|
|
var password = '';
|
|
@@ -80,7 +80,7 @@ while (password != rightPassword){ //Пока пароль не равен ве
|
|
|
}
|
|
|
```
|
|
|
|
|
|
-#### **continue**
|
|
|
+#### `continue`
|
|
|
|
|
|
```javascript
|
|
|
var user = '';
|
|
@@ -97,10 +97,10 @@ while (user != rightUser || password != rightPassword){ //Пока пользо
|
|
|
}
|
|
|
```
|
|
|
|
|
|
-### Цикл **do ... while**
|
|
|
+### Цикл `do ... while`
|
|
|
|
|
|
Этот цикл называется циклом с *постусловием*, то есть проверка условия выхода из цикла происходит не *перед* а *после* выполнения тела цикла. Таким образом,
|
|
|
-цикл с *постусловием* выполняется хотя бы один раз. Для нашего примера этот цикл подходит лучше, чем обычный **while**. Почему?
|
|
|
+цикл с *постусловием* выполняется **хотя бы один раз**. Для нашего примера этот цикл подходит лучше, чем обычный `while`. Почему?
|
|
|
|
|
|
```javascript
|
|
|
var password = '';
|
|
@@ -110,3 +110,49 @@ do{
|
|
|
password = prompt('Введите пароль:', ''); //спрашивать пароль
|
|
|
}while (password != rightPassword) //Пока пароль не равен верному...
|
|
|
```
|
|
|
+
|
|
|
+### Цикл `for`
|
|
|
+
|
|
|
+Это самый сложный и мощный цикл, в синтаксисе заголовка которого, кроме условия, присутствуют еще и другие операции:
|
|
|
+- инициализация, т. е. то, что делается перед началом цикла
|
|
|
+- условие продолжения (как в `while`)
|
|
|
+- операции, которые выполняются после каждой итерации
|
|
|
+
|
|
|
+В общем виде цикл `for` выглядит так:
|
|
|
+```javascript
|
|
|
+for (init1,init2,...;condition;iter1,iter2...){
|
|
|
+....
|
|
|
+}
|
|
|
+```
|
|
|
+
|
|
|
+Где:
|
|
|
+- `initN` - это те или иные инициализирующие операторы, которые выполняются *перед* началом выполнения цикла
|
|
|
+- `condition` - условие продолжения
|
|
|
+- `iterN` - операции, выполняющиеся после какждой *итерации*
|
|
|
+
|
|
|
+Примеры:
|
|
|
+```javascript
|
|
|
+for (var i=0;i<10;i++){
|
|
|
+ console.log(i);
|
|
|
+}
|
|
|
+```
|
|
|
+
|
|
|
+Этот цикл считает от 0 до 9, каждую итерацию выводя значения i в консоль.
|
|
|
+**Вопрос**: чему будет равен i после цикла?
|
|
|
+
|
|
|
+#### Задание
|
|
|
+Напишите аналогичный цикл `while`
|
|
|
+
|
|
|
+```javascript
|
|
|
+for (var i=10,str="";i>0;i--,str+="#"){
|
|
|
+ console.log(i, str);
|
|
|
+}
|
|
|
+```
|
|
|
+
|
|
|
+**Вопрос**: чему будет равен i и str после цикла?
|
|
|
+#### Задание
|
|
|
+Напишите аналогичный цикл `while`
|
|
|
+
|
|
|
+Таким образом становится ясно, что `for` - не более чем сокращенная форма `while`, или, другими словами, *синтаксический сахар*.
|
|
|
+
|
|
|
+
|