控制流程

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