break、continue、return 知识点
1. 概念
continue:跳过本次循环,直接进入下一次循环break:结束当前循环,或者结束当前switchreturn:结束当前函数,并返回一个值
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给上一层
所以:
continue、break更偏向循环控制return更偏向函数结果和递归返回
6. 常见误区
6.1 误区一:break 能结束函数
错误理解:
break会把整个函数都结束
正确理解:
break只结束当前循环或switch- 循环后面的函数代码还会继续执行
6.2 误区二:return 只是跳出循环
错误理解:
return和break差不多,只是退出循环
正确理解:
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