break、continue、return 一次性搞懂

4 阅读4分钟

break、continue、return 知识点

1. 概念

  • continue:跳过本次循环,直接进入下一次循环
  • break:结束当前循环,或者结束当前 switch
  • return:结束当前函数,并返回一个值

2. 作用范围

关键字作用范围结束什么
continue只能在循环中使用结束本次循环
break循环、switch 中使用结束整个循环或整个 switch
return函数中使用结束整个函数

3. 使用场景

3.1 continue 适合什么时候

当你只是想“跳过当前这一次数据”,但后面的循环还要继续执行时,用 continue

常见场景:

  • 跳过空值
  • 跳过不合法数据
  • 过滤不需要处理的项

示例:

for (let i = 0; i < arr.length; i++) {
  if (arr[i] == null) continue
  console.log(arr[i])
}

理解:

  • 当前项是 null/undefined,这次不处理
  • 但后面的项继续遍历

3.2 break 适合什么时候

当你已经“不需要继续循环了”时,用 break

常见场景:

  • 找到目标值后停止搜索
  • 遇到终止条件后停止
  • switch 中防止 case 穿透

示例1:在循环中查找

for (let i = 0; i < arr.length; i++) {
  if (arr[i] === 5) {
    console.log('找到了')
    break
  }
}

理解:

  • 一旦找到目标
  • 整个循环立刻结束

示例2:在 switch 中使用

switch (color) {
  case 'red':
    console.log('红色')
    break
  case 'blue':
    console.log('蓝色')
    break
  default:
    console.log('其他颜色')
}

理解:

  • break 用来结束当前 switch
  • 防止继续执行下面的 case

3.3 return 适合什么时候

当你已经得到函数结果,不需要继续执行当前函数时,用 return

常见场景:

  • 函数计算出最终结果
  • 参数不合法时提前结束函数
  • 递归中得到结果后立刻返回

示例:

function sum(a, b) {
  return a + b
}

再看一个提前返回:

function divide(a, b) {
  if (b === 0) {
    return '除数不能为 0'
  }
  return a / b
}

理解:

  • return 后面当前函数中的代码不会再执行

4. 三者对比示例

4.1 continue

for (let i = 1; i <= 5; i++) {
  if (i === 3) continue
  console.log(i)
}

输出:

1
2
4
5

原因:

  • i === 3 时跳过本次循环
  • 但循环继续执行 4、5

4.2 break

for (let i = 1; i <= 5; i++) {
  if (i === 3) break
  console.log(i)
}

输出:

1
2

原因:

  • i === 3 时整个循环结束
  • 后面的 4、5 都不会执行

4.3 return

function test() {
  for (let i = 1; i <= 5; i++) {
    if (i === 3) return i
    console.log(i)
  }
  console.log('done')
}

console.log(test())

输出:

1
2
3

理解:

  • i === 3 时,return i
  • 整个函数直接结束
  • for 后面的 console.log("done") 不会执行

5. 和递归里的关系

在递归中,return 特别重要,因为递归真正依赖的是“返回值一层层传回来”。

例如:

function sum(n) {
  if (n === 0) return 0
  return n + sum(n - 1)
}

这里:

  • 终止条件用 return 0
  • 每一层把结果 return 给上一层

所以:

  • continuebreak 更偏向循环控制
  • return 更偏向函数结果和递归返回

6. 常见误区

6.1 误区一:break 能结束函数

错误理解:

  • break 会把整个函数都结束

正确理解:

  • break 只结束当前循环或 switch
  • 循环后面的函数代码还会继续执行

6.2 误区二:return 只是跳出循环

错误理解:

  • returnbreak 差不多,只是退出循环

正确理解:

  • return 结束的是整个函数
  • break 的作用范围更大

6.3 误区三:continue 会结束整个循环

错误理解:

  • continue 后循环就停止了

正确理解:

  • continue 只是跳过这一次
  • 下一次循环仍然会继续

7. 最短判断口诀

  • continue:这次算了
  • break:别循环了
  • return:别函数了

8. 快速判断题

场景1

遍历数组,遇到空字符串时跳过,但后面的元素继续处理。

答案:

continue

场景2

遍历数组,找到目标值后立刻停止搜索。

答案:

break

场景3

函数中参数不合法,不想继续执行后面的逻辑。

答案:

return

场景4

递归中已经拿到结果,要把结果交回上一层。

答案:

return

9. 最后总结

如果你只记住一段话,就记这个:

continue -> 跳过本次循环,继续下一次
break    -> 结束当前循环 / switch
return   -> 结束当前函数,并返回结果

以后做题时先问自己一句:

  • 我是只想跳过这一项? -> continue
  • 我是已经没必要再循环了? -> break
  • 我是整个函数都可以结束了? -> return