break、continue、return的使用与区别

break、continue、return的使用与区别

结论先行:

break与continue:

break和continue都是用来控制循环结构的,主要作用是停止循环

它俩的区别:

1》break是跳出整个循环,continue是跳出当前循环,继续进行下一个循环

2》continue语句只用在for、while、do-while等循环体中, 常与if条件语句一起使用, 用来加速循环;break还可以在switch分支语句中使用,遇到break,就会跳出switch语句

return

函数中使用,函数遇到return就会立即停止执行并退出;后面可以跟函数的返回值,如果不跟就返回undefined;

break语句

跳出整个循环;跳出的是它所在的最近一级的循环,如果外面还有循环,外面还是会继续的

eg1:

      let num = 0;
      const arr = [1, 2, 3, 4, 5, 6];
      for (let k = 1; k <= 10; k++) {
        if (k % 3 == 0) {
          break;
        }
        num++;
      }
      console.log(num);  // 2

当 k=3 时,满足条件break,跳出真个for循环语句,打印2

eg2:

      let num = 0;
      for (let i = 0; i < 2; i++) {
        for (let k = 1; k <= 10; k++) {
          if (k % 3 == 0) {
            break;
          }
          num++;
        }
      }
      console.log(num);  // 4

外面这一层循环,循环了两次,里面的循环每次到 k=3就跳出里面的循环,所以打印4

break在switch分支语句中使用

      const type = "first";
      switch (type) {
        case "first":
          console.log("object");
          break;
        case "second":
          console.log("array");
          break;
        case "third":
          console.log("function");
          break;
        default:
          console.log("object");
      }

退出switch语句,switch是分支语句,不是循环语句

continue语句

跳出当前循环,继续进行下一次循环;

eg1:

      let num = 0;
      const arr = [1, 2, 3, 4, 5, 6];
      for (let k = 1; k <= 10; k++) {
        if (k % 3 == 0) {
          continue;
        }
        num++;
      }
      console.log(num);  // 7

当 k=3 时,满足条件,执行continue,结束了本次循环(只是本次循环continue后面的不执行),直接开始下一次循环

eg2:

      let num = 0;
      for (let i = 0; i < 2; i++) {
        for (let k = 1; k <= 10; k++) {
          if (k % 3 == 0) {
            continue;
          }
          num++;
        }
      }
      console.log(num);  // 14

同样外面执行两轮的循环,里面循环为3的倍数就不执行continue后面的内容,开始下一轮循环

对比2:

break、continue到了3都不会执行后面的结果,但是实际上还是不一样,break到了3直接推出了循环,而continue是直接进行下一轮循环,如果在判断前进行打印就可以看出区别

  const arr = [1, 2, 3, 4, 5, 6];
  for (let k = 0; k < arr.length; k++) {
    if (arr[k] > 3) {
      break;  
      // continue
    }
    console.log(arr[k]); // 依次打印1 2 3
  }

return

函数返回值,终止整个函数的执行并退出

      function testReturn() {
        console.log("这是第一层循环");
        let num = 0;
        for (let i = 0; i < 2; i++) {
          for (let k = 1; k <= 10; k++) {
            console.log("第二层循环");
            if (k % 3 == 0) {
              return num;
            }
            num++;
          }
        }
      }
      console.log(testReturn());

第一层循环只执行了一轮,第二层循环在第三轮的时候就碰到了return,直接退出真个函数,打印了函数返回值2

你可能感兴趣的:(js基础,javascript,前端)