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
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
|
---
title: break
slug: Web/JavaScript/Reference/Statements/break
translation_of: Web/JavaScript/Reference/Statements/break
original_slug: Web/JavaScript/Referencia/Sentencies/break
---
<div>{{jsSidebar("Statements")}}</div>
<p>La <strong> sentència</strong> <strong>break</strong> acaba el bucle actual, {{jsxref("Statements/switch", "switch")}}, o una sentència {{jsxref("Statements/label", "label")}} i transfereix el control de programa a la sentència següent de la sentència acabada.</p>
<h2 id="Sintaxi">Sintaxi</h2>
<pre class="syntaxbox"><code>break [<em>etiqueta</em>];</code></pre>
<dl>
<dt><code>Etiqueta</code></dt>
<dd>Opcional. És l'identificador associat amb l'etiqueta de la sentència. Si la sentència no és un bucle o un {{jsxref("Statements/switch", "switch")}}, això és necessari.</dd>
</dl>
<h2 id="Descripció">Descripció</h2>
<p>La sentència <code>break</code> inclou una etiqueta opcional que permet al programa sortir de la sentència etiquetada. La sentència <code>break</code> necessita ser imbricada dins l'etiqueta de referència. La sentència etiquetada pot ser qualsevol sentència {{jsxref("Statements/block", "block")}}, no ha de ser precedida per una sentència de bucle.</p>
<h2 id="Exemples">Exemples</h2>
<p>La funció següent té una sentència <code>break</code> que acaba amb el bucle{{jsxref("Statements/while", "while")}} quan <code>i</code> és 3, per després retornar el valor 3 * <code>x</code>.</p>
<pre class="brush:js;highlight:[6];">function testBreak(x) {
var i = 0;
while (i < 6) {
if (i == 3) {
break;
}
i += 1;
}
return i * x;
}</pre>
<p>El codi següent utilitza sentències<code> break</code> amb blocs etiquetats. Una sentència <code>break</code> ha de ser imbricada dins de qualsevol etiqueta que fa referència. Vegeu que <code>inner_block</code> és troba imbricada dins <code>outer_block</code>.</p>
<pre class="brush:js;highlight:[1,2,4];">outer_block: {
inner_block: {
console.log('1');
break outer_block; // surt tan de inner_block com de outer_block
console.log(':-('); // es salta
}
console.log('2'); // es salta
}
</pre>
<p>El codi següent també utilitza sentències <code>break</code> amb blocs etiquetats però cenera un Syntax Error perquè la sentència <code>break</code> es troba dins de <code>block_1</code> però fa referència a <code>block_2</code>. Una sentència <code>break</code> ha d'estar sempre imbricada dins de l'eitqueta a la que fa referència.</p>
<pre class="brush:js;highlight:[1,3,6];">block_1: {
console.log('1');
break block_2; // SyntaxError: etiqueta no trobada
}
block_2: {
console.log('2');
}
</pre>
<h2 id="Especificacions">Especificacions</h2>
<table class="standard-table">
<tbody>
<tr>
<th scope="col">Especificació</th>
<th scope="col">Estat</th>
<th scope="col">Comentaris</th>
</tr>
<tr>
<td>{{SpecName('ES1')}}</td>
<td>{{Spec2('ES1')}}</td>
<td>Definició inicial. Versió no etiquetada.</td>
</tr>
<tr>
<td>{{SpecName('ES3')}}</td>
<td>{{Spec2('ES3')}}</td>
<td>versió etiquetada afegida.</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>
</tbody>
</table>
<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2>
<p>{{CompatibilityTable}}</p>
<div id="compat-desktop">
<table class="compat-table">
<tbody>
<tr>
<th>Característica</th>
<th>Chrome</th>
<th>Firefox (Gecko)</th>
<th>Internet Explorer</th>
<th>Opera</th>
<th>Safari</th>
</tr>
<tr>
<td>Suport bàsic</td>
<td>{{CompatVersionUnknown}}</td>
<td>{{CompatVersionUnknown}}</td>
<td>{{CompatVersionUnknown}}</td>
<td>{{CompatVersionUnknown}}</td>
<td>{{CompatVersionUnknown}}</td>
</tr>
</tbody>
</table>
</div>
<div id="compat-mobile">
<table class="compat-table">
<tbody>
<tr>
<th>Característica</th>
<th>Android</th>
<th>Chrome per Android</th>
<th>Firefox Mobile (Gecko)</th>
<th>IE Mobile</th>
<th>Opera Mobile</th>
<th>Safari Mobile</th>
</tr>
<tr>
<td>Suport bàsic</td>
<td>{{CompatVersionUnknown}}</td>
<td>{{CompatVersionUnknown}}</td>
<td>{{CompatVersionUnknown}}</td>
<td>{{CompatVersionUnknown}}</td>
<td>{{CompatVersionUnknown}}</td>
<td>{{CompatVersionUnknown}}</td>
</tr>
</tbody>
</table>
</div>
<h2 id="Vegeu_també">Vegeu també</h2>
<ul>
<li>{{jsxref("Statements/continue", "continue")}}</li>
<li>{{jsxref("Statements/label", "label")}}</li>
<li>{{jsxref("Statements/switch", "switch")}}</li>
</ul>
|