break
Baseline
åºãå©ç¨å¯è½
ãã®æ©è½ã¯åºãå®è£ ããã¦ãããå¤ãã®ãã¼ã¸ã§ã³ã®ç«¯æ«ããã©ã¦ã¶ã¼ã§åä½ãã¾ãã2015å¹´7æä»¥éããã¹ã¦ã®ãã©ã¦ã¶ã¼ã§å©ç¨å¯è½ã§ãã
break æã¯ç¾å¨ã®ã«ã¼ãã switch æãçµäºããããã°ã©ã ã®å¶å¾¡ãçµäºããæã®æ¬¡ã®æã«ç§»ãã¾ããã©ãã«ä»ãã®æã®ä¸ã§ä½¿ç¨ãããå ´åã¯ãã©ãã«ä»ãã®æãé£ã³è¶ããããã«ã使ããã¾ãã
試ãã¦ã¿ã¾ããã
let i = 0;
while (i < 6) {
if (i === 3) {
break;
}
i += 1;
}
console.log(i);
// äºæ³ãããçµæ: 3
æ§æ
break;
break label;
labelçç¥å¯-
çµäºããæã®ã©ãã«ã«é¢é£ä»ããããèå¥åã
breakæãã«ã¼ããswitchã®ä¸ã«å ¥ãåã«ãªã£ã¦ããªãå ´åã¯ãã©ãã«èå¥åãå¿ è¦ã§ãã
解説
break; ã«ééããã¨ãããã°ã©ã ã¯æãå
å´ã® switch ã¾ãã¯ã«ã¼ãæããæãåºãããã®æ¬¡ã®æããå®è¡ãç¶ãã¾ãã
break label; ã«ééããã¨ãããã°ã©ã 㯠label ã§ã©ãã«ä»ããããæããæãåºãããã®æ¬¡ã®æã®å®è¡ãç¶ãã¾ããbreak æã¯åç
§ãããã©ãã«ã®å
å´ã«ããå¿
è¦ãããã¾ããã©ãã«ã¯ãããããããã¯æã«ä»ãããã¨ãã§ãã¾ããã«ã¼ãæã®åã§ããå¿
è¦ã¯ããã¾ããã
break æã¯ããã®å¾ã«ã©ãã«ããããã©ããã«é¢ããããã¹ã¯ãªãããã¢ã¸ã¥ã¼ã«ã颿°ã®æ¬ä½ãéçåæåãããã¯ã®ããããæä¸ä½ã§ä½¿ç¨ãããã¨ã¯ã§ãã¾ããããã®é¢æ°ãã¯ã©ã¹ãããã«ã«ã¼ãã®ä¸ã«å«ã¾ãã¦ããå ´åã§ãã§ãã
ä¾
>while ã«ã¼ãã«ããã break
次ã®é¢æ°ã«ã¯ break æããããi ã 3 ã®æã« while æãçµäºãããã®ã§ã3 * x ã®å¤ãè¿ãã¾ãã
function testBreak(x) {
let i = 0;
while (i < 6) {
if (i === 3) {
break;
}
i += 1;
}
return i * x;
}
switch æã«ããã break
次ã®ã³ã¼ãã«ã¯ãä¸è´ãã case ã¨å¯¾å¿ããã³ã¼ããå®è¡ãããå¾ã§ switch æãçµäºããããã® break ãããã¾ãã
const food = "sushi";
switch (food) {
case "sushi":
console.log("Sushi is originally from Japan.");
break;
case "pizza":
console.log("Pizza is originally from Italy.");
break;
default:
console.log("I have never heard of that dish.");
break;
}
ã©ãã«ä»ããããã¯ã«ããã break
次ã®ã³ã¼ãã¯ãã©ãã«ä»ããããã¯ã§ break æã使ã£ã¦ãã¾ããbreak outerBlock ã使ç¨ããã¨ãå¶å¾¡ã¯ outerBlock ã¨ãã¦ãã¼ã¯ããããããã¯æ§æã®æ«å°¾ã«ç§»åãã¾ãã
outerBlock: {
innerBlock: {
console.log("1");
break outerBlock; // innerBlock ããã³ outerBlock ã®ä¸¡æ¹ããæãã¾ã
console.log(":-("); // ã¹ãããããã
}
console.log("2"); // ã¹ãããããã
}
æ§æéåã® break æ
break æã¯åç
§å
ã®ã©ãã«ã®ä¸ã«ãªããã°ãªãã¾ãããæ¬¡ã®ã³ã¼ããã©ãã«ä»ããããã¯ã§ break æã使ã£ã¦ãã¾ãããbreak æã block2 ãåç
§ãã¦ããã«ãããããã block2 ã®ä¸ã«ãªãã®ã§ãæ§æã¨ã©ã¼ãçºçãã¾ãã
block1: {
console.log("1");
break block2; // SyntaxError: label not found
}
block2: {
console.log("2");
}
æ§æã¨ã©ã¼ã¯ã次ã®ã³ã¼ãã®ããã« break ãã«ã¼ãã®ä¸ããbreak æã«ãã£ã¦è±åºãããã¨ãã¦ããã©ãã«ä»ããããã¯ã®ä¸ã§å
¥ãåã«ãªã£ã¦ãã颿°ã§ä½¿ãããå ´åã«ããæ§æã¨ã©ã¼ãçºçãã¾ãã
function testBreak(x) {
let i = 0;
while (i < 6) {
if (i === 3) {
(() => {
break;
})();
}
i += 1;
}
return i * x;
}
testBreak(1); // SyntaxError: Illegal break statement
block1: {
console.log("1");
(() => {
break block1; // SyntaxError: Undefined label 'block1'
})();
}
仿§æ¸
| 仿§æ¸ |
|---|
| ECMAScript® 2027 Language Specification > # sec-break-statement > |