五等-統計資料處理大意108 年第 14 題單選題
下列那一個敘述不建議在結構化程式設計中使用?
Agoto正確答案
Bif
Cwhile
Dcontinue
A正確答案
結構化程式設計強調單一入口單一出口,goto 會破壞程式流程,不建議使用。
為什麼答案是 A
goto 可無條件跳躍到程式任意位置,破壞結構化程式的循序、選擇、重複三大控制流程,造成「義大利麵式程式碼」難以維護除錯,故結構化設計強烈不建議使用。
載入中…
完整詳解
Pro · 無限重點 結構化程式設計強調單一入口單一出口,goto 會破壞程式流程,不建議使用。
看到 goto 直接選,這是結構化程式設計的經典禁忌。
逐選項分析
A✓ 正確
goto 可無條件跳躍到程式任意位置,破壞結構化程式的循序、選擇、重複三大控制流程,造成「義大利麵式程式碼」難以維護除錯,故結構化設計強烈不建議使用。
B✕
if 是結構化程式設計三大控制結構中「選擇結構」的核心敘述,符合單一入口單一出口原則,是必備且推薦使用的語法。
C✕
while 是「重複結構」的標準語法,當條件成立時重複執行,符合結構化設計精神,是推薦使用的迴圈控制敘述。
D✕ 陷阱
continue 雖會跳過本次迴圈剩餘敘述進入下一輪,但仍在迴圈結構內運作,未破壞整體控制流程。雖有爭議但一般仍可接受,非結構化設計的主要禁忌。
結構化程式設計三大控制結構
| 結構類型 | 代表語法 | 特性 | 是否推薦 |
|---|
| 循序結構 | 敘述依序執行 | 由上而下 | ✅ 推薦 |
| 選擇結構 | if / switch | 條件判斷分支 | ✅ 推薦 |
| 重複結構 | while / for | 條件式迴圈 | ✅ 推薦 |
| 無條件跳躍 | goto | 破壞流程 | ❌ 不建議 |
考生可能誤選 D continue,以為跳過敘述就是破壞流程。但 continue 僅在迴圈內局部控制,goto 才是結構化程式設計公認的大忌,Dijkstra 曾發表著名文章《Go To Statement Considered Harmful》。