400 likes | 487 Views
第五章 迴 圈結構. 本章學習目標. 讓 讀者瞭解 迴圈 結構種類 、 語法 及適用時機。 說明 計數迴圈 與 條件式迴圈 的差異。. 本章內容. 5-1. 計數迴圈 5-2. for 迴圈 5-3 巢狀迴圈 for 的使用 5-4 條件迴圈 (Do/Loop) 5-5. while 迴圈 5-6 do/while 迴圈 5-7 break 與 continue 敘述. 前言 (1/3).
E N D
本章學習目標 • 讓讀者瞭解迴圈結構種類、語法及適用時機。 • 說明計數迴圈與條件式迴圈的差異。
本章內容 5-1. 計數迴圈 5-2. for迴圈 5-3 巢狀迴圈for的使用 5-4 條件迴圈(Do/Loop) 5-5. while迴圈 5-6 do/while迴圈 5-7 break與continue敘述
前言 (1/3) • 日常生活中,有許多事都是具有重覆性,例如一天有 24 小時,一星期有七天,同一門課要上18 次才能拿到學分,一個大學學位可以要修132個學分才能拿到,諸如此類問題,如果只靠人工處理必定是一件非常煩工作。 • 因此可以利用程式設計來解決此類所面臨問題。一般而言,可把一再重複動作,全部交由電腦處理,因此驅使電腦做這樣事情的方式,就是迴圈(Loop),亦即讓某一段程式反覆執行多次的敘述,稱之為「迴圈結構」。
5-1 計數迴圈(1/2) • 計數迴圈可以想像成一個「計數器」,你設定多少次,此迴圈就會執行多少次。在VC#2008中計數迴圈又可分為下列兩種: • for迴圈:是單層次的迴圈結構 • 使用時機:適用於「單一變數」的重覆變化。 • 典型例子:1+2+3+…+10
5-1 計數迴圈(2/2) (2)巢狀迴圈for 的使用:是多層次的迴圈結構 使用時機:適用於「兩個或兩個以上變數」的重覆變化。典型例子:九九乘法表
5-2 for迴圈(4/7) • 【使用時機】已知程式執行次數固定且重覆時,使用此種迴圈最適合。 • 【流程圖】當程式執行「敘述一」之後,可重新執行「敘述二」,直到條件式不成立為止。如圖5-3所示:
5-3 巢狀迴圈for的使用(1/6) • 定義:指迴圈內還有其他的迴圈,稱為巢狀迴圈(Nested Loop)。因為它像鳥巢一樣,是由一層層組合而成。
5-4 條件迴圈(Do/Loop) (1/3) • 如果不能預先知道迴圈次數的話,則必須要使用條件迴圈來解決。例如王媽媽第一天給小明10元,第二天給20元,第三天給30元,請問小明要儲存到5000元需要多少天?諸如此類題目,最好使用條件式迴圈比較容易處理,如果使用計數迴圈(For)來處理的話,將會增加程式複雜度。 一般而言,條件迴圈有下面兩種: • 前測試迴圈(先判斷再執行) • 後測試迴圈(先執行再判斷)
5-5 while迴圈(1/7) • 如果預先已知道了迴圈執行次數,使用for計數迴圈是一個很好選擇,但事實並非永遠如此。如果不能預先知道迴圈次數的話,使用while迴圈會是一個好選擇。while迴圈是屬於前測試迴圈,當條件式「成立(True)」時,則執行迴圈敘述。
5-5 while迴圈(5/7) • 雖然上面例子,似乎無法明顯看出while迴圈優點,但是有些時候使用for迴圈並不容易描述想做的事情,例如如果想要知道2的多少次方才會大於1,000,由於事先並不知道到底是多少,所以很難設定for迴圈之中的變數值,勉強去用也會顯得很累贅,但是如果改用while迴圈,就會變得很簡單: 實例1:求2的多少次方才會大於1,000呢?
5-6 do/while迴圈(1/3) • do/while是屬於後測試迴圈,當條件式「 成立(True)」時,則執行迴圈敘述。
5-7 break與continue敘述 • break與continue敘述主要是應用在for與while迴圈當中,其中break敘述的目的就是用來中斷程式的執行動作。而continue敘述則是用來繼續執行某一動作。
5-7.1 break敘述 (1/2) • break敘述會使程式強迫跳離迴圈,繼續執行迴圈外下一個敘述,若其出現在巢狀迴圈內,則跳離該層迴圈,而break敘述在for與while迴圈中的比較如下:
5-7.1 break敘述 (2/2) 此行執行不到
5-7.2 continue敘述(1/2) • continue則是強迫程式跳到迴圈的起頭,當遇到其敘述時,停止執行迴圈主體,而到迴圈的開始處繼續執行,而continue敘述在for與while迴圈中的比較如下: