break-continue-return循環總結

跳出循環的三種方法(break-return-continue)

break-return-continue

1.break

MDN: breakexpress

  • 定義
    break 語句停止當前循環,switch 語句或 label 語句,並把程序控制流轉到緊接着被停止語句後面的語句。bash

  • 語法函數

    break [label];ui

    label
     可選。與語句標籤相關聯的標識符。若是 break 語句不在一個循環或 switch 語句中,則該項是必須的。spa

2.return

MDN: returncode

  • 定義
    return 語句終止函數的執行,並返回一個指定的值給函數調用者。ip

  • 語法get

    return [[expression]];string

    expression
     表達式的值會被返回。若是忽略,則返回 undefined。it

3.continue

MDN: continue

  • 定義
    continue 語句結束當前(或標籤)的循環語句的本次迭代,並繼續執行循環的下一次迭代。

  • 語法

    continue [ label];

    label
     標識標號關聯的語句

1. for

function execute() {
  var arr = [1, 2, 3],
    i = 0,
    len = arr.length;

  for (; i < len; i++) {
    // if (i === 1) [statement];
    console.log(`key: ${i} \nvalue: ${arr[i]}`);
  }
  console.log('execute');
}

var result = execute();
console.log(result);

複製代碼
statement 結果 說明
break key: 0
value: 1
execute
undefined
跳出循環
continue key: 0
value: 1
key: 2
value: 3
execute
undefined
跳出當前執行,執行下次循環
return key: 0
value: 1
undefined
跳出函數

2. while

function execute() {
  var num = 0;

  while (num <= 3) {
    num++;
    // if (num === 1) [statement];
    console.log(num);
  }
  console.log('execute');
}
var result = execute();
console.log(result);
複製代碼
statement 結果 說明
break execute
undefined
跳出循環
continue 2
3
4
execute
undefined
跳出當前執行,執行下次循環
return undefined 跳出函數

3. do-while 循環

function execute() {
  var num = 3;
  do {
    num--;
    if (num === 1) break;
    console.log(num);
  } while (num >= 0)

  console.log('execute');
}
var result = execute();
console.log(result);
複製代碼
statement 結果 說明
break 2
execute
undefined
跳出循環
continue 2
0
-1
execute
undefined
跳出當前執行,執行下次循環
return 2
undefined
跳出函數

4. for-in

function execute() {
  var obj = {a: 1, b:2, c: 3};

  for(let key in obj) {
    // if(obj[key] === 1) [statement];
    console.log(obj[key]);
  }
  console.log('execute');
}
var result = execute();
console.log(result);
複製代碼
statement 結果 說明
break execute
undefined
跳出循環
continue 2
3
execute
undefined
跳出當前執行,執行下次循環
return undefined 跳出函數

5. for-of

function execute() {
  var arr = [1, 2, 3];

  for(let value in arr) {
    // if(value === 1) [statement];
    console.log(value);
  }
  console.log('execute');
}
var result = execute();
console.log(result);
複製代碼
statement 結果 說明
break execute
undefined
跳出循環
continue 2
3
execute
undefined
跳出當前執行,執行下次循環
return undefined 跳出函數

6.map

function execute() {
  var arr = [1, 2, 3];

  var result  = arr.map(v=> {
    // if(v === 1) [statement];
    console.log(v);
  })
  console.log(result);
  console.log('execute');
}
var result = execute();
console.log(result);
複製代碼
statement 結果 說明
break SyntaxError: Illegal break statement map 中不容許使用 break
continue Illegal continue statement: no surrounding iteration statement map 中不容許使用 continue
return 'result' 2
3
['result', undefined, undefined]
execute
undefined
保持 map 的返回值,執行下次循環

7.forEach

function execute() {
  var arr = [1, 2, 3];

  var result  = arr.forEach(v=> {
    // if(v === 1) [statement];
    console.log(v);
  })
  console.log(result);
  console.log('execute');
}
var result = execute();
console.log(result);
複製代碼
statement 結果 說明
break SyntaxError: Illegal break statement forEach 中不容許使用 break
continue Illegal continue statement: no surrounding iteration statement forEach 中不容許使用 continue
return 'result' 2
3
undefined
execute
undefined
forEach 自己無返回值,這裏無效果,執行下次循環

8.every

function execute() {
  var arr = [1, 2, 3];

  var result  = arr.every(v=> {
    if(v === 1) [statement];
    console.log(v);
  })
  console.log(result);
  console.log('execute');
}
var result = execute();
console.log(result);
複製代碼
statement 結果 說明
break SyntaxError: Illegal break statement every 中不容許使用 break
continue Illegal continue statement: no surrounding iteration statement every 中不容許使用 continue
return 'result' 2
false
execute
undefined
every 數據中存在不知足 v === 1 的數據,則返回 false, return 後執行下次循環

9.some

function execute() {
  var arr = [1, 2, 3];

  var result  = arr.some(v=> {
    if(v === 1) [statement];
    console.log(v);
  })
  console.log(result);
  console.log('execute');
}
var result = execute();
console.log(result);
複製代碼
statement 結果 說明
break SyntaxError: Illegal break statement some 中不容許使用 break
continue Illegal continue statement: no surrounding iteration statement some 中不容許使用 continue
return 'result' true
execute
undefined
some 數據中只要存在知足 v === 1 的數據,則返回 true, 這裏 return 後跳出循環

10.filter

function execute() {
  var arr = [1, 2, 3];

  var result  = arr.filter(v=> {
    if(v === 1) [statement];
    console.log(v);
  })
  console.log(result);
  console.log('execute');
}
var result = execute();
console.log(result);
複製代碼
statement 結果 說明
break SyntaxError: Illegal break statement filter 中不容許使用 break
continue Illegal continue statement: no surrounding iteration statement filter 中不容許使用 continue
return 'result' 2
3
[1]
execute
undefined
filter 篩選知足條件的數據, 這裏 return 後跳出當前執行,執行下次循環

11. reduce

function execute() {
  var arr = [1, 2, 3];

  var result  = arr.reduce((prev, cur)=> {
    if(prev === 1) return 'result';
    console.log(prev, cur);
  })
  console.log(result);
  console.log('execute');
}
var result = execute();
console.log(result);
複製代碼
statement 結果 說明
break SyntaxError: Illegal break statement reduce 中不容許使用 break
continue Illegal continue statement: no surrounding iteration statement reduce 中不容許使用 continue
return 'result' result 3
undefined
execute
undefined
reduce prev 表明前一個返回值, 這裏 return 後跳出當前執行, 執行下次循環
相關文章
相關標籤/搜索