break、continue、return在循环里的使用

227 阅读1分钟

之前没有详细整理过break、continue、return适用场景,刚好前段时间有同事问一下,顺便在这里统一整理回顾一遍

前言

  • break: 结束当前循环并跳出整个循环
  • continue: 结束当前循环,执行下个循环
  • return: 结束当前循环并且有返回值,执行下个循环

break和continue在循环方法里可以使用,return一般在函数里面使用

用法小结

  • while :continue和break能使用 return不能使用
  • do-while:continue和break能使用 return不能使用
  • for :continue和break能使用 return不能使用
  • for in : continue和break能使用 return不能使用
  • for of : continue和break能使用 return不能使用
  • switch : break能使用 continue、return不能使用
  • forEach : return能使用 continue、break不能使用
  • map : return能使用, continue、break不能使用

while:continue和break能使用 return不能使用

// while中使用continue
let count = 0
while(count < 10){
    count++
    console.log('count:', count)
    continue
    console.log('after continue')
}

count: 1
count: 2
count: 3
count: 4
count: 5
count: 6
count: 7
count: 8
count: 9
count: 10

// while中使用break
let count = 0
while(count < 10){
    count++
    console.log('count:', count)
    break
    console.log('after break')
}

count: 1

do-while:continue和break能使用 return不能使用


// do-while中使用continue
let i = 0;
do {
    i++;
    console.log(i)
    continue
    console.log('after continue')
} while (i < 5);

1
2
3
4
5

// do-while中使用break
let i = 0;
do {
    i++;
    console.log(i)
    break
    console.log('after break')
} while (i < 5);

1

for:continue和break能使用 return不能使用

// for中使用continue
let count = 0
for(let i=0; i<5; i++){
    count++
    console.log('count:', count)
    continue
    console.log('after continue')
}

count: 1
count: 2
count: 3
count: 4
count: 5

// for中使用break
let count = 0
for(let i=0; i<5; i++){
    count++
    console.log('count:', count)
    break
    console.log('after break')
}

count: 1

for in: continue和break能使用 return不能使用

// continue在for in中的使用
let arr = [1, 2, 3, 4, 5]
for(let index in arr) {
    console.log('index:', arr[index])
    continue
    console.log('after continue')
}

index: 1
index: 2
index: 3
index: 4
index: 5

// break在for in中的使用
let arr = [1, 2, 3, 4, 5]
for(let index in arr) {
    console.log('index:', arr[index])
    break
    console.log('after break')
}

index: 1

for of: continue和break能使用 return不能使用

// continuefor of中的使用
let arr = [1, 2, 3, 4, 5]
for(let key of arr) {
    console.log('key:', key)
    continue
    console.log('after continue')
}

key: 1
key: 2
key: 3
key: 4
key: 5

// break在for of中的使用
let arr = [1, 2, 3, 4, 5]
for(let key of arr) {
    console.log('key:', key)
    break
    console.log('after break')
}

key: 1

switch: break能使用 continue、return不能使用

// breakswitch中的使用
switch(1){
    case 1: 
        console.log(1)
        break;
        console.log('after break')
    case 2: 
        console.log(2)
        break;
         console.log('after break')
}

1

forEach: return能使用 continue、break不能使用

// return 在 forEach中的使用
let arr = [1, 2, 3, 4, 5]
arr.forEach(item => {
    console.log('item:', item)
    return  
    console.log('after return')
})

item: 1
item: 2
item: 3
item: 4
item: 5

map: return能使用, continue、break不能使用

let arr = [1, 2, 3, 4, 5]
arr.map(item => {
    console.log('item:', item)
    return
    console.log('after return')
})
item: 1
item: 2
item: 3
item: 4
item: 5