跳转到主要内容
模块 5 · 第 3 课(共 4)课程中的19/32~10 min
模块课程(3/4)

中断并继续

循环中两个非常有用的小词:

  • break 立即退出最内层循环。
  • continue 跳转到下一个迭代,而不执行主体的其余部分。

break:提前退出

典型的“找到第一个满足条件的”:

JS
function primoNegativo(nums) {
  for (const n of nums) {
    if (n < 0) return n; // o: result = n; break;
  }
  return undefined;
}

primoNegativo([3, 7, -2, 4, -9]); // -2

显式 break 的示例:

JS
let trovato = -1;
const nums = [10, 20, 30, 40, 50];
for (let i = 0; i < nums.length; i++) {
  if (nums[i] === 30) {
    trovato = i;
    break;
  }
}
trovato; // 2

continue:跳到下一个

当某个元素不感兴趣但您想继续循环时:

JS
function sommaPari(nums) {
  let totale = 0;
  for (const n of nums) {
    if (n % 2 !== 0) continue; // salta i dispari
    totale += n;
  }
  return totale;
}

sommaPari([1, 2, 3, 4, 5, 6]); // 12

在许多情况下, if (cond) { ... } 是等效的; continue 在主体较长时有帮助 并且您希望保持流程平坦(少量嵌套)。

尝试一下

锻炼#js.m5.l3.e1
尝试:0加载中...

定义“firstGreater(nums,threshold)”,返回nums中严格大于threshold的第一个元素,如果没有则返回未定义。使用中断(或立即返回)。

正在加载编辑器...
显示提示

for 中的 return 同时用作break + return。

3 次尝试后可用的解决方案

复习练习

锻炼#js.m5.l3.e2
尝试:0加载中...

定义“sumSkippingZeros(nums)”,对除精确零之外的所有元素求和。使用继续。

正在加载编辑器...
显示提示

如果n === 0,则继续;否则会累积。

3 次尝试后可用的解决方案