From 39f2114f9797eb51994966c6bb8ff1814c9a4da8 Mon Sep 17 00:00:00 2001 From: Florian Merz Date: Thu, 11 Feb 2021 12:36:08 +0100 Subject: unslug fr: move --- .../reference/statements/break/index.html | 156 +++++++++++++++++++++ 1 file changed, 156 insertions(+) create mode 100644 files/fr/web/javascript/reference/statements/break/index.html (limited to 'files/fr/web/javascript/reference/statements/break') diff --git a/files/fr/web/javascript/reference/statements/break/index.html b/files/fr/web/javascript/reference/statements/break/index.html new file mode 100644 index 0000000000..bc3a1c12df --- /dev/null +++ b/files/fr/web/javascript/reference/statements/break/index.html @@ -0,0 +1,156 @@ +--- +title: break +slug: Web/JavaScript/Reference/Instructions/break +tags: + - JavaScript + - Reference + - Statement +translation_of: Web/JavaScript/Reference/Statements/break +--- +
{{jsSidebar("Statements")}}
+ +

L'instruction break permet de terminer la boucle en cours ou l'instruction {{jsxref("Instructions/switch", "switch")}} ou {{jsxref("Instructions/label", "label")}} en cours et de passer le contrôle du programme à l'instruction suivant l'instruction terminée.

+ +
{{EmbedInteractiveExample("pages/js/statement-break.html")}}
+ + + +

Syntaxe

+ +
break [label];
+ +
+
label {{optional_inline}}
+
Un identifiant optionnel associé avec l'étiquette (label) de l'instruction. Si l'instruction à terminer n'est pas une boucle ou une instruction {{jsxref("Instructions/switch", "switch")}}, ce paramètre est nécessaire.
+
+ +

Description

+ +

L'instruction break peut être utilisée avec une étiquette (label) optionnelle qui permet d'interrompre une instruction étiquetée. L'instruction break doit être imbriquée au sein de l'instruction référencée. L'instruction étiquetée peut correspondre à n'importe quel instruction de {{jsxref("Instructions/bloc", "bloc","",1)}} ; il n'est pas nécessaire qu'elle soit précédée par une instruction de boucle.

+ +

Une instruction break, suivie ou non d'une étiquette, ne peut pas être utilisée dans le corps d'une fonction appartenant elle-même à une boucle, à une instruction {{jsxref("Instructions/switch")}} ou à une instruction label.

+ +

Exemples

+ +

Exemple simple utilisant break

+ +

La fonction qui suit utilise une instruction break qui interrompt la boucle {{jsxref("Instructions/while", "while")}} lorsque i vaut 3, grâce à l'instruction qui suit, la fonction renvoie 3 * x.

+ +
function testBreak(x) {
+   var i = 0;
+
+   while (i < 6) {
+      if (i == 3) {
+         break;
+      }
+      i += 1;
+   }
+   return i * x;
+}
+ +

Utiliser break avec les labels

+ +

Dans le code suivant, on utilise les instructions break avec des blocs étiquetés. Une instruction break doit être présente à l'intérieur du bloc auquel elle fait référence. Ici, on voit que bloc_interne est compris dans bloc_externe.

+ +
bloc_externe: {
+
+  bloc_interne: {
+    console.log ('1');
+    break bloc_externe;  // interrompt bloc_externe ET bloc_interne
+    console.log (':-('); // ignoré
+  }
+
+  console.log ('2');     // ignoré
+}
+
+ +

Dans le code qui suit, on utilise également des instructions break avec des blocs étiquetés mais on obtient une exception SyntaxError car l'instruction break au sein de bloc_1 référence bloc_2, or bloc_1 n'est pas compris dans bloc_2 :

+ +
bloc_1: {
+  console.log ('1');
+  break bloc_2;  // SyntaxError: label not found
+}
+
+bloc_2: {
+  console.log ('2');
+}
+
+ +

Utiliser break dans des fonctions imbriquées dans des boucles

+ +

Dans le cas d'une fonction imbriquée dans une boucle while :

+ +
function testBreak(x){
+  var i = 0;
+  while (i < 6) {
+    if (i === 3) {
+      (function() {
+        break;
+      })();
+    }
+    i += 1;
+  }
+  return i * x;
+}
+
+testBreak(1); // SyntaxError: Illegal break statement
+ +

Dans le cas d'une fonction imbriquée dans une instruction label :

+ +
bloc_1: {
+  console.log('1');
+  (function() {
+    break bloc_1; // SyntaxError: Undefined label 'bloc_1'
+  })();
+}
+ +

Spécifications

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SpécificationStatutCommentaires
{{SpecName('ES1')}}{{Spec2('ES1')}}Définition initiale. Version non étiquetée.
{{SpecName('ES3')}}{{Spec2('ES3')}}Version étiquetée ajoutée.
{{SpecName('ES5.1', '#sec-12.8', 'instruction break')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-break-statement', 'instruction break')}}{{Spec2('ES6')}} 
{{SpecName('ESDraft', '#sec-break-statement', 'Break statement')}}{{Spec2('ESDraft')}} 
+ +

Compatibilité des navigateurs

+ + + +

{{Compat("javascript.statements.break")}}

+ +

Voir aussi

+ + -- cgit v1.2.3-54-g00ecf