重複結構簡介
演算法的三種基本結構 在進行問題解決時,通常會對於所要解決的問題進行分析,並依據問題的類型與特性,設計不同的解題方法與步驟,形成解決問題的演算法。 幾乎所有的演算法都可以用下列三種基本結構組合而成: 循序結構(Sequential) 選擇結構(Selection) 重複結構(Iteration)
基本結構介紹 演算法結構 循序結構(Sequence structure) 選擇結構(Selection structure) 依一定的順序,由上而下,一個敘述接著一個敘述依序執行。 演算法結構 選擇結構(Selection structure) 依條件判斷的結果改變程式執行的順序。 重複結構(Iteration structure) 程式中某一敘述區段需要反覆執行,直到符合或不符合時,才離開重複執行的部份。
為什麼要有重複結構? 日常生活中每天都有許多「不斷重複」的事件在進行,例如早上起床、刷牙洗臉、換衣服、吃早餐、上學…等,都是每天必須重複經歷的事。在解題歷程中,同樣有許多不斷重複的程式敘述,此時便可用「重複結構」來簡化程式,並提供無法事先預測需重複次數的解決方案。
重複結構的運作方式 重複結構就如同學校的跑道一般,從司令台前開始起跑,跑了一圈後會回到司令台前,此時可以選擇要不要繼續下一圈的跑步。 重複結構是一個可以讓程式敘述重複執行的結構,配合在每一圈開頭或結尾設置的條件判斷式,決定重複的程式敘述是否繼續執行。
重複結構的運作方式 舉例來說,若要完成「在考取理想大學校系前,不斷的重複進行讀書、模擬考試、檢討的循環」,我們可以先以循序結構表示如下: …… 循環一 循環二 循環三
重複結構的運作方式 由於無法確定要完成多少的循環才能考取理想的校系,所以我們並無法以單純的循序結構來完成,此時我們可用重複結構來達成: 讀書 考試 檢討 尚未考取 理想校系? 讀書 是 否 考試 檢討 快樂享受大學生活
重複結構的三種類型 條件式重複結構 重複結構 計次式重複結構 遞迴式重複結構
前測式重複結構:先行後測 執行重複程式區塊前先進行條件式判斷 條件判斷式 敘述一 是 否 敘述二 敘述三 重複結構外敘述
後測式重複結構:先測後行 先執行完重複程式區塊後再進行條件式判斷 條件判斷式 敘述一 是 否 敘述二 敘述三 重複結構外敘述
兩種重複結構的差別 若「前測式重複結構」一開始就發現條件判斷式為否(false),那麼接下來的程式區塊內容一次也不會執行。
巢狀重複結構 如果在重複結構的敘述區塊中,又有重複結構,即形成「巢狀重複結構」。 條件判斷式一 敘述一 是 否 敘述三 重複結構外敘述 條件判斷式二 敘述二 如果在重複結構的敘述區塊中,又有重複結構,即形成「巢狀重複結構」。 巢狀重複結構在執行時,都會依照一定流程進行,但有時因為特殊原因,必須變更執行的流程,通常會有「中斷(break)」和「繼續(continue)」兩種指令敘述,並搭配選擇結構來完成。
巢狀重複結構 break的運作方式 「中斷(break)」指令敘述用來強制跳出重複結構。 否 條件判斷式 是 敘述一 中斷 直接跳出重複結構 敘述三 重複結構外敘述
巢狀重複結構 continue的運作方式 「繼續(continue)」指令敘述是讓目前執行中的重複結構不往下執行,而是跳到重複結構的開頭,繼續執行下一個循環。 直接跳到重複結構的開頭 條件判斷式 敘述一 是 否 繼續 敘述三 重複結構外敘述