控制流程
維基百科,自由的 encyclopedia
控制流程(也稱為流程控制)是電腦運算領域的用語,意指在程式執行時,個別的指令(或是陳述、子程序)執行(英语:Execution (computing))或求值的順序。不論是在宣告式程式語言或是函數程式語言中,都有類似的概念。
在宣告式的程式語言中,流程控制指令是指會改變程式執行順序的指令,可能是執行不同位置的指令,或是在二段(或多段)程式中選擇一個執行。
不同的程式語言所提供的流程控制指令也會隨之不同,但一般可以分為以下四種:
- 繼續執行位在不同位置的一段指令(無條件分支指令)。
- 若特定條件成立時,執行一段指令,例如C語言的switch指令,是一種有條件分支指令。
- 執行一段指令若干次,直到特定條件成立為止,例如C語言的for指令,仍然可視為一種有條件分支指令。
- 執行位在不同位置的一段指令,但完成後會繼續執行原來要執行的指令,包括子程序、协程(coroutine)及续体(continuation)。
- 停止程式,不執行任何指令(無條件的終止)。
中斷以及Unix系統中的信号等較低階的機制也可以造成類似子程序的效果,不過通常這類機制會用來回應外部的事件或是輸入。程序自修改因為其對程式碼的影響,也會影響控制流程,但多半不會有明顯的流程控制指令。
在机器语言或汇编语言中,流程控制是藉由修改程式計數器數值來達到。一些中央處理器只支援條件分支(branch)或是無條件分支(有時會稱為jump)。