continue
åºçº¿
广æ³å¯ç¨
èª 2015å¹´7æ èµ·ï¼æ¤ç¹æ§å·²å¨ä¸»æµæµè§å¨ä¸å¾å°æ¯æï¼å¯å¨å¤§å¤æ°è®¾å¤åæµè§å¨çæ¬ä¸æ£å¸¸ä½¿ç¨ã
continue 声æç»æ¢å½åå¾ªç¯ææ 记循ç¯çå½åè¿ä»£ä¸çè¯å¥æ§è¡ï¼å¹¶å¨ä¸ä¸æ¬¡è¿ä»£æ¶ç»§ç»æ§è¡å¾ªç¯ã
å°è¯ä¸ä¸
let text = "";
for (let i = 0; i < 10; i++) {
if (i === 3) {
continue;
}
text = text + i;
}
console.log(text);
// Expected output: "012456789"
è¯æ³
continue;
continue label;
label-
æ è¯æ ç¾å ³èçè¯å¥
æè¿°
ä¸ break è¯å¥çåºå«å¨äºï¼continue å¹¶ä¸ä¼å®å
¨ç»æ¢å¾ªç¯çæ§è¡ï¼èæ¯ï¼
- å¨
whileædo...while循ç¯ä¸ï¼æ§å¶æµè·³è½¬åæ¡ä»¶å¤æï¼ - å¨
for循ç¯ä¸ï¼æ§å¶æµè·³è½¬å°æ´æ°è¯å¥ã - å¨
for...inãfor...ofæfor await...of循ç¯ä¸ï¼å®ä¼è·³è½¬å°ä¸ä¸æ¬¡è¿ä»£ã
continue è¯å¥å¯ä»¥å
å«ä¸ä¸ªå¯éçæ ç¾ä»¥æ§å¶ç¨åºè·³è½¬å°æå®å¾ªç¯çä¸ä¸æ¬¡è¿ä»£ï¼èéå½å循ç¯ãè¿ç§æ
åµè¦æ± continue è¯å¥å¨è¢«æ è¯çè¯å¥å
é¨ã
å¨èæ¬ã模åã彿°ä½æéæåå§åçé¡¶å±ä¸è½ä½¿ç¨ continue è¯å¥ï¼æ 论æ¯å¦å¸¦æåç»æ ç¾ï¼ï¼å³ä½¿è¯¥å½æ°æç±»è¿ä¸æ¥å
å«å¨å¾ªç¯ä¸ä¹ä¸è¡ã
示ä¾
>å¨ while è¯å¥ä¸ä½¿ç¨ continue
ä¸è¿°ä¾åå±ç¤ºäºä¸ä¸ªå¨ i 为 3 æ¶æ§è¡ continue è¯å¥ç while 循ç¯ãå æ¤ï¼n çå¼å¨å 次è¿ä»£ååå«ä¸º 1ã3ã7 å 12ã
i = 0;
n = 0;
while (i < 5) {
i++;
if (i === 3) {
continue;
}
n += i;
}
使ç¨å¸¦æ ç¾ç continue
å¨ä¸é¢çä¾åä¸ï¼è¢«æ 记为 checkiandj çè¯å¥å
å«ä¸ä¸ªè¢«æ 记为 checkj çè¯å¥ãå½éå° continue è¯å¥æ¶ï¼ç¨åºåå° checkj è¯å¥çå¼å§ç»§ç»æ§è¡ãæ¯æ¬¡éå° continue æ¶ï¼å次æ§è¡ checkjï¼ç´å°æ¡ä»¶å¤æè¿å falseãä¹å宿 checkiandj è¯å¥å©ä¸çé¨åã
ä½å¦æ continue çæ å·è¢«æ¹ä¸º checkiandj ï¼é£ç¨åºå°ä¼ä» checkiandj è¯å¥çå¼å§ç»§ç»è¿è¡ã
let i = 0;
let j = 8;
checkIAndJ: while (i < 4) {
console.log(`iï¼${i}`);
i += 1;
checkJ: while (j > 4) {
console.log(`jï¼${j}`);
j -= 1;
if (j % 2 === 0) continue checkJ;
console.log(`${j} æ¯å¥æ°ã`);
}
console.log(`i = ${i}`);
console.log(`j = ${j}`);
}
è¾åºï¼
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
è¯æ³é误ç continue è¯å¥
continue ä¸è½å¨è·¨è¶å½æ°è¾¹çç循ç¯ä¸ä½¿ç¨ã
for (let i = 0; i < 10; i++) {
(() => {
continue; // SyntaxError: Illegal continue statement: no surrounding iteration statement
})();
}
å¼ç¨æ ç¾æ¶ï¼æ ç¾è¯å¥å¿
é¡»å
å« continue è¯å¥ã
label: for (let i = 0; i < 10; i++) {
console.log(i);
}
for (let i = 0; i < 10; i++) {
continue label; // SyntaxError: Undefined label 'label'
}
æ è®°çè¯å¥å¿ é¡»æ¯ä¸ä¸ªå¾ªç¯ã
label: {
for (let i = 0; i < 10; i++) {
continue label; // SyntaxError: Illegal continue statement: 'label' does not denote an iteration statement
}
}
è§è
| è§è |
|---|
| ECMAScript® 2027 Language Specification > # sec-continue-statement > |