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