1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
|
---
title: continue
slug: Web/JavaScript/Reference/Statements/continue
tags:
- JavaScript
- Statement
translation_of: Web/JavaScript/Reference/Statements/continue
---
<div>{{jsSidebar("Statements")}}</div>
<h2 id="Сводка">Сводка</h2>
<p>Инструкция <strong>continue</strong> прерывает выполнение текущей итерации текущего или отмеченного цикла, и продолжает его выполнение на следующей итерации.</p>
<h2 id="Syntax">Синтаксис</h2>
<pre class="syntaxbox">continue [ label ];</pre>
<dl>
<dt><code>label</code></dt>
<dd>Идентификатор, являющийся меткой (<code>label</code>) инструкции.</dd>
</dl>
<h2 id="Description">Описание</h2>
<p>По сравнению с инструкцией {{jsxref("Statements/break", "break")}}, <code>continue</code> прерывает выполнение цикла не полностью, вместо этого:</p>
<ul>
<li>В цикле {{jsxref("Statements/while", "while")}} оно переносит поток выполнения к условию.</li>
</ul>
<ul>
<li>В цикле {{jsxref("Statements/for", "for")}} оно переносит поток выполнения к финальному выражению в описании цикла.</li>
</ul>
<p>Инструкция <code>continue</code> может использоваться вместе с необязательной меткой, которая будет начинать следующую итерацию отмеченного цикла, а не текущего. В этом случае, <code>continue</code> должен находиться внутри отмеченного блока, который соответствует метке.</p>
<h2 id="Examples">Примеры</h2>
<h3 id="Example_Using_continue_with_while">Использование <code>continue</code> с циклом <code>while</code></h3>
<p>Пример показывает использование цикла {{jsxref("Statements/while", "while")}} вместе с инструкцией <code>continue, которая выполняется, когда</code> <code>i</code> станет равно 3-м. Таким образом, <code>n</code> принимает значения 1, 3, 7 и 12.</p>
<pre class="brush: js">i = 0;
n = 0;
while (i < 5) {
i++;
if (i === 3) {
continue;
}
n += i;
}
</pre>
<h3 id="Использование_continue_вместе_с_меткой">Использование <code>continue</code> вместе с меткой</h3>
<p>В примере цикл, отмеченный <code>checkiandj</code>, содержит внутри себя цикл, отмеченный <code>checkj</code>. Если встретится инструкция <code>continue</code>, выполнение кода продолжится в начале блока кода <code>checkj</code>. При каждом вызове <code>continue цикл</code> <code>checkj</code> будет начинать новую итерацию, пока условие не начнёт возвращать <code>false</code>. Когда это случится, продолжится выполнение оставшейся части цикла <code>checkiandj</code>.</p>
<p>Если бы <code>continue</code> имело метку <code>checkiandj</code>, программа продолжала бы свою работу с начала цикла <code>checkiandj</code>.</p>
<p>Смотрите также {{jsxref("Statements/label", "label")}}.</p>
<pre class="brush: js">var i = 0,
j = 8;
checkiandj: while (i < 4) {
console.log("i: " + i);
i += 1;
checkj: while (j > 4) {
console.log("j: "+ j);
j -= 1;
if ((j % 2) == 0)
continue checkj;
console.log(j + " является нечётным.");
}
console.log("i = " + i);
console.log("j = " + j);
}
</pre>
<p>Вывод:</p>
<pre class="brush: js">"i: 0"
// начало checkj
"j: 8"
"7 является нечётным."
"j: 7"
"j: 6"
"5 является нечётным."
"j: 5"
// конец checkj
"i = 1"
"j = 4"
"i: 1"
"i = 2"
"j = 4"
"i: 2"
"i = 3"
"j = 4"
"i: 3"
"i = 4"
"j = 4"
</pre>
<h2 id="Спецификации">Спецификации</h2>
{{Specifications}}
<h2 id="Поддержка_браузерами">Поддержка браузерами</h2>
<p>{{Compat}}</p>
<h2 id="See_also">Смотрите также</h2>
<ul>
<li>{{jsxref("Statements/break", "break")}}</li>
<li>{{jsxref("Statements/label", "label")}}</li>
</ul>
|