aboutsummaryrefslogtreecommitdiff
path: root/files/ru/web/javascript/reference/statements/continue/index.html
blob: 40d7a5a04ede06d8ac9f68e5bc3a108eb10fb63d (plain)
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 &lt; 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 &lt; 4) {
   console.log("i: " + i);
   i += 1;

   checkj: while (j &gt; 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>