URLhttps://learnscript.net/zh/programming/operations/control-flow/
    复制链接转到说明  示例

    控制流程,控制结构介绍

    我被代码海扁署名-非商业-禁演绎
    阅读 4:16·字数 1281·发布 

    控制流程

    控制流程是指对代码执行顺序的控制,也被称为流程控制,在默认情况下,人们编写的代码将按照顺序依次执行,一行代码执行完毕后会进入下一行,这看上去似乎没有问题,但对于某些情况却是不可行的。

    比如,一个功能需要反复执行一千次,复制出一千段代码将让人无法接受,因为他的篇幅太长,谁知道是一千段,还是一千零一段,即便 IDE 可以帮助你统计,那也是不明智的。

    控制流程种类

    除了按顺序执行,根据行为和效果,控制流程还可以分为以下几种。

    有条件分支

    有条件分支将在条件成立时,进入并执行分支包含的代码。

    有条件循环

    有条件循环将在条件成立时,反复执行循环包含的代码。

    无条件跳转

    无条件跳转将使程序跳转至其他代码位置,这可能是从循环跳出,也可能是函数的开始或结束。

    无条件终止

    无条件终止将终止整个程序的执行。

    无条件跳转

    用于无条件跳转的关键字有很多,比如,continuebreakreturn,以及非常著名但现已消声觅迹的goto

    continue

    continue一般用于跳出本次循环,不影响整个循环的执行。

    break

    break一般用于跳出整个循环,当目标或任务已经完成时,结束循环的执行是明智的。

    return

    return一般用于跳出当前函数或方法的执行,无论在函数或方法的哪个位置,他都是有效的。

    goto

    goto将跳转至指定的标识符位置继续执行。

    为何 goto 带来了危害?

    过多的运用goto使得代码变得难于维护,因为此时通过顺序阅读,并不容易理解代码表示的逻辑,而且你可能很难搞清楚代码的影响范围。

    在下面的 JavaScript 代码中,continue用于跳过偶数,break用于在和大于100时跳出整个循环。

    control_flow.js
    let odd = 0
    let i = 0
    
    // 将 1 至 100 的奇数相加,当和大于 100 时跳出 while (true) { // 如果是偶数,则跳出本次循环 if (++i % 2 == 0) continue
    odd += i
    // 如果和大于 100,则跳出整个循环 if (odd > 100) break }
    console.log(`奇数之和为:${odd}`)
    奇数之和为:121

    控制结构

    控制结构是控制流程的具体实现,主流观点将控制结构分为顺序结构,分支结构和循环结构。

    分支结构

    分支结构将根据给出的表达式,来决定是否可以执行某个分支中的代码,常见的分支结构有ifswitch。此外,try也可被视为分支结构的一种,他通常以异常类型为条件。

    循环结构

    循环结构用于反复执行一段代码,当指定的表达式不成立时,循环结构将被跳出,当然,你也可以使用breakcontinue跳出整个和本次的循环。常见的循环结构有forwhile

    在下面的 JavaScript 代码中,分支结构根据数字显示了不同的消息,循环结构则计算了1100中所有偶数的和。

    control_flow.js
    // 产生一个随机数
    const number = Math.random()
    
    // 分支结构,根据数字显示信息 if (number < 0.5) console.log('数字小于 0.5') else if (number > 0.5) console.log('数字大于 0.5') else console.log('神奇的数字')
    let even = 0
    // 使用循环结构计算 1 至 100 所有偶数的和 for (let i = 1; i <= 100; i++) if (i % 2 == 0) even += i
    console.log(`偶数之和为:${even}`)
    数字小于 0.5
    偶数之和为:2550

    源码

    control_flow.js·codebeatme/programming·GitHub