控制流程
维基百科,自由的 百科全书
控制流程(也称为流程控制)是电脑运算领域的用语,意指在程式执行时,个别的指令(或是陈述、子程序)执行或求值的顺序。不论是在宣告式程式语言或是函数程式语言中,都有类似的概念。
在宣告式的程式语言中,流程控制指令是指会改变程式执行顺序的指令,可能是执行不同位置的指令,或是在二段(或多段)程式中选择一个执行。
不同的程式语言所提供的流程控制指令也会随之不同,但一般可以分为以下四种:
- 继续执行位在不同位置的一段指令(无条件分支指令)。
- 若特定条件成立时,执行一段指令,例如C语言的switch指令,是一种有条件分支指令。
- 执行一段指令若干次,直到特定条件成立为止,例如C语言的for指令,仍然可视为一种有条件分支指令。
- 执行位在不同位置的一段指令,但完成后会继续执行原来要执行的指令,包括子程序、协程(coroutine)及计算续体(continuation)。
- 停止程式,不执行任何指令(无条件的终止)。
中断以及Unix系统中的信号等较低阶的机制也可以造成类似子程序的效果,不过通常这类机制会用来回应外部的事件或是输入。程序自修改因为其对程式码的影响,也会影响控制流程,但多半不会有明显的流程控制指令。
在机器语言或汇编语言中,流程控制是藉由修改程式计数器数值来达到。一些中央处理器只支援条件分支(branch)或是无条件分支(有时会称为jump)。