aboutsummaryrefslogtreecommitdiff
path: root/files/uk/web/javascript/reference/statements/break/index.html
diff options
context:
space:
mode:
Diffstat (limited to 'files/uk/web/javascript/reference/statements/break/index.html')
-rw-r--r--files/uk/web/javascript/reference/statements/break/index.html151
1 files changed, 151 insertions, 0 deletions
diff --git a/files/uk/web/javascript/reference/statements/break/index.html b/files/uk/web/javascript/reference/statements/break/index.html
new file mode 100644
index 0000000000..700d495bd6
--- /dev/null
+++ b/files/uk/web/javascript/reference/statements/break/index.html
@@ -0,0 +1,151 @@
+---
+title: break
+slug: Web/JavaScript/Reference/Statements/break
+tags:
+ - JavaScript
+ - Довідка
+ - Оператор
+translation_of: Web/JavaScript/Reference/Statements/break
+---
+<div>{{jsSidebar("Statements")}}</div>
+
+<p>Оператор <strong>break</strong> перериває виконання поточного циклу, перемикача {{jsxref("Statements/switch", "switch")}} або {{jsxref("Statements/label", "поміченого")}} блоку і передає контроль до наступної за перерваним блоком інструкції.</p>
+
+<div>{{EmbedInteractiveExample("pages/js/statement-break.html")}}</div>
+
+
+
+<h2 id="Синтаксис">Синтаксис</h2>
+
+<pre class="syntaxbox"><code>break [<em>label</em>];</code></pre>
+
+<dl>
+ <dt><code>label</code> {{optional_inline}}</dt>
+ <dd>Ідентифікатор, асоційований з міткою конструкції. Якщо конструкція не є циклом або перемикачем {{jsxref("Statements/switch", "switch")}}, цей параметр є обов'язковим.</dd>
+</dl>
+
+<h2 id="Опис">Опис</h2>
+
+<p>Оператор <code>break</code> має необов'язкову мітку, яка дозволяє програмі переривати виконання поміченої конструкції. Оператор <code>break</code> має бути розташований всередині конструкції, на яку посилається. Вона може бути будь-яким {{jsxref("Statements/block", "блоком")}} інструкцій; це необов'язково має бути цикл.</p>
+
+<p>Оператор <code>break</code>, з міткою або без неї, не може використовуватися всередині тіла фукнції, що вкладена у цикл, перемикач або помічений блок, який має перервати оператор <code>break</code>.</p>
+
+<h2 id="Приклади">Приклади</h2>
+
+<p>Наступна фукнція містить оператор <code>break</code>, що перериває цикл {{jsxref("Statements/while", "while")}}, коли <code>i</code> дорівнює 3, а після цього поветає значення 3 * <code>x</code>.</p>
+
+<pre class="brush:js;highlight:[6];">function testBreak(x) {
+ var i = 0;
+
+ while (i &lt; 6) {
+ if (i == 3) {
+ break;
+ }
+ i += 1;
+ }
+
+ return i * x;
+}</pre>
+
+<p>Наступний код використовує оператори <code>break</code> з поміченими блоками. Оператор <code>break</code> має знаходитися всередині будь-якої мітки, на яку посилається. Зауважте, що <code>inner_block</code> вкладений у <code>outer_block</code>.</p>
+
+<pre class="brush:js;highlight:[1,2,4];">outer_block: {
+ inner_block: {
+ console.log('1');
+ break outer_block; // перериває обидва inner_block та outer_block
+ console.log(':-('); // пропускається
+ }
+ console.log('2'); // пропускається
+}
+</pre>
+
+<p>Наступний код також використовує оператори <code>break</code> з поміченими блоками, але генерує помилку SyntaxError, тому що оператор <code>break</code> знаходиться всередині <code>block_1</code>, але посилається на <code>block_2</code>. Оператор <code>break</code> завжди має знаходитися всередині будь-якої мітки, на яку посилається.</p>
+
+<pre class="brush:js;highlight:[1,3,6];">block_1: {
+ console.log('1');
+ break block_2; // SyntaxError: label not found
+}
+
+block_2: {
+ console.log('2');
+}
+</pre>
+
+<p>Помилки SyntaxError також генеруються у наступних прикладах, які використовують оператори <code>break</code> всередині функцій, що вкладені у цикл чи помічений блок, що їх мають перервати оператори <code>break</code>.</p>
+
+<pre class="brush:js;highlight:[1,3,6];">function testBreak(x) {
+ var i = 0;
+
+ while (i &lt; 6) {
+ if (i == 3) {
+ (function() {
+ break;
+ })();
+ }
+ i += 1;
+ }
+
+return i * x;
+}
+
+testBreak(1); // SyntaxError: Illegal break statement
+</pre>
+
+<pre class="brush:js;highlight:[1,3,6];">block_1: {
+ console.log('1');
+ ( function() {
+ break block_1; // SyntaxError: Undefined label 'block_1'
+ })();
+}
+</pre>
+
+<h2 id="Специфікації">Специфікації</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Специфікація</th>
+ <th scope="col">Статус</th>
+ <th scope="col">Коментар</th>
+ </tr>
+ <tr>
+ <td>{{SpecName('ES1')}}</td>
+ <td>{{Spec2('ES1')}}</td>
+ <td>Початкове визначення. Версія без мітки.</td>
+ </tr>
+ <tr>
+ <td>{{SpecName('ES3')}}</td>
+ <td>{{Spec2('ES3')}}</td>
+ <td>Додано версію з міткою.</td>
+ </tr>
+ <tr>
+ <td>{{SpecName('ES5.1', '#sec-12.8', 'Break statement')}}</td>
+ <td>{{Spec2('ES5.1')}}</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td>{{SpecName('ES6', '#sec-break-statement', 'Break statement')}}</td>
+ <td>{{Spec2('ES6')}}</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td>{{SpecName('ESDraft', '#sec-break-statement', 'Break statement')}}</td>
+ <td>{{Spec2('ESDraft')}}</td>
+ <td></td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Сумісність_з_веб-переглядачами">Сумісність з веб-переглядачами</h2>
+
+
+
+<p>{{Compat("javascript.statements.break")}}</p>
+
+<h2 id="Див._також">Див. також</h2>
+
+<ul>
+ <li>{{jsxref("Statements/continue", "continue")}}</li>
+ <li>{{jsxref("Statements/label", "label")}}</li>
+ <li>{{jsxref("Statements/switch", "switch")}}</li>
+</ul>