程式設計基礎/結構化程式設計
結構化程式設計是一種程式設計正規化,旨在透過廣泛使用結構化控制流構造來提高計算機程式的清晰度、質量和開發時間
- 選擇(if/then/else)
- 重複(while 和 for)
- 塊結構
- 子程式
這與使用簡單的測試和跳轉(如“go to”語句)形成對比,後者會導致“義大利麵條程式碼”;程式碼可能難以理解和維護。[1]
程式設計最重要的概念之一是控制程式的能力,以便執行不同的程式碼行。允許我們控制執行流程的機制稱為控制結構。流程圖是一種記錄(圖表)程式將執行的流程(或路徑)的方法。控制結構主要分為三類
順序 - 順序程式碼是最熟悉、最易讀的。程式碼按 a 到 z 的順序讀取。想想讀一本書。你按順序閱讀章節。
<script>
var a = 1;
var b = 2;
var c = 3;
a = b;
c = a;
<script>
選擇 - 在兩個或多個條件之間進行選擇。透過提出一個問題來決定選擇。答案決定了要執行的路徑。
<script>
var a = 1;
var b = 2;
if (a {
var text = “I know a < b, it’s a bit obvious”;
document.getElementById(“demo”).innerHTML =text;
}
</script>
迭代 - 也稱為重複,它允許一些程式碼 s) 被執行或重複多次。程式碼可能根本沒有執行,執行固定次數或無限期執行,直到滿足某個條件為止。迭代也稱為迴圈,因為程式碼顯示流程迴圈回到執行任務。例如,while 迴圈用於根據提出的條件重複執行。
<script>
var a = 0;
var b = 10;
result = “a < b”;
text = “ “;
while(a < b)
{
text += result + “<br>”;
a++;
}
document.getElementById(“demo”).innerHTML = text;
</script>
分支 - 一種不受控制的結構,允許執行流程跳轉到程式的不同部分。此類別很少在模組化結構化程式設計中使用。例如,if/else 語句取決於條件。
<script>
var x="";
var time=new Date().getHours();
if (time<20)
{x="Have Good day";
}
else
{x="Have Good evening";
}
document.write(x);
</script>
所有高階程式語言都有控制結構。所有語言都有前三種類別的控制結構(順序、選擇和迭代)。大多數語言都有 if then else 結構(屬於選擇類別)和 while 結構(屬於迭代類別)。在這兩種基本結構之後,通常會有語言變體。
結構化程式設計的概念始於 1960 年代後期,Edsger Dijkstra 的一篇論文。他提出了一種“減少 goto”的規劃程式設計邏輯方法,消除了對控制結構分支類別的需要。這個話題被討論了大約 20 年。但最終 - “到 20 世紀末,幾乎所有計算機科學家都相信學習和應用結構化程式設計的概念是有益的。”[2]
- 分支
- 一種不受控制的結構,允許執行流程跳轉到程式的不同部分。
- 控制結構
- 允許我們控制程式執行流程的機制。
- 迭代
- 一種允許某些程式碼行被執行多次的控制結構。
- 選擇
- 一種控制結構,程式在其中在兩個或多個選項之間進行選擇。
- 順序
- 一種控制結構,程式按列出的順序執行其中的專案。
- 結構化程式設計
- 一種規劃程式的方法,避免了控制結構的分支類別。