40
第第第 第第第第

第五章 迴 圈結構

Embed Size (px)

DESCRIPTION

第五章 迴 圈結構. 本章學習目標. 讓 讀者瞭解 迴圈 結構種類 、 語法 及適用時機。 說明 計數迴圈 與 條件式迴圈 的差異。. 本章內容. 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). - PowerPoint PPT Presentation

Citation preview

Page 1: 第五章   迴 圈結構

第五章 迴圈結構 第五章

迴圈結構

Page 2: 第五章   迴 圈結構

本章學習目標

1. 讓讀者瞭解迴圈結構種類、語法及適用時機。

2. 說明計數迴圈與條件式迴圈的差異。

Page 3: 第五章   迴 圈結構

本章內容

5-1. 計數迴圈5-2. for 迴圈5-3 巢狀迴圈 for 的使用5-4 條件迴圈 (Do/Loop)5-5. while 迴圈5-6 do/while 迴圈5-7 break 與 continue 敘述

Page 4: 第五章   迴 圈結構

前言 (1/3)

日常生活中,有許多事都是具有重覆性,例如一天有 24 小時,一星期有七天,同一門課要上18 次才能拿到學分,一個大學學位可以要修132 個學分才能拿到,諸如此類問題,如果只靠人工處理必定是一件非常煩工作。

因此可以利用程式設計來解決此類所面臨問題。一般而言,可把一再重複動作,全部交由電腦處理,因此驅使電腦做這樣事情的方式,就是迴圈(Loop) ,亦即讓某一段程式反覆執行多次的敘述,稱之為「迴圈結構」。

Page 5: 第五章   迴 圈結構

前言 (2/3)

Page 6: 第五章   迴 圈結構

前言 (3/3)

Page 7: 第五章   迴 圈結構

5-1 計數迴圈 (1/2)

計數迴圈可以想像成一個「計數器」,你設定多少次,此迴圈就會執行多少次。在 VC#2008 中計數迴圈又可分為下列兩種:

1. for 迴圈:是單層次的迴圈結構2. 使用時機:適用於「單一變數」的重覆變化。 典型例子: 1+2+3+…+10

Page 8: 第五章   迴 圈結構

5-1 計數迴圈 (2/2)

(2) 巢狀迴圈 for 的使用:是多層次的迴圈結構 使用時機:適用於「兩個或兩個以上變數」的重覆變化。典型例子:九九乘法表

Page 9: 第五章   迴 圈結構

5-2 for 迴圈 (1/7)

Page 10: 第五章   迴 圈結構

5-2 for 迴圈 (2/7)

Page 11: 第五章   迴 圈結構

5-2 for 迴圈 (3/7)

Page 12: 第五章   迴 圈結構

5-2 for 迴圈 (4/7)

【使用時機】已知程式執行次數固定且重覆時,使用此種迴圈最適合。

【 流 程 圖 】 當 程 式 執 行 「 敘 述一 」 之 後 , 可 重 新 執 行 「 敘 述二」,直到條件式不成立為止。如圖 5-3 所示:

Page 13: 第五章   迴 圈結構

5-2 for 迴圈 (5/7)

Page 14: 第五章   迴 圈結構

5-2 for 迴圈 (6/7)

Page 15: 第五章   迴 圈結構

5-2 for 迴圈 (7/7)

Page 16: 第五章   迴 圈結構

5-3 巢狀迴圈 for 的使用 (1/6)

定義:指迴圈內還有其他的迴圈,稱為巢狀迴圈(Nested Loop) 。因為它像鳥巢一樣,是由一層層組合而成。

Page 17: 第五章   迴 圈結構

5-3 巢狀迴圈 for 的使用 (2/6)

Page 18: 第五章   迴 圈結構

5-3 巢狀迴圈 for 的使用 (3/6)

Page 19: 第五章   迴 圈結構

5-3 巢狀迴圈 for 的使用 (4/6)

Page 20: 第五章   迴 圈結構

5-3 巢狀迴圈 for 的使用 (5/6)

Page 21: 第五章   迴 圈結構

5-3 巢狀迴圈 for 的使用 (6/6)

Page 22: 第五章   迴 圈結構

5-4 條件迴圈 (Do/Loop) (1/3)

如果不能預先知道迴圈次數的話,則必須要使用條件迴圈來解決。例如王媽媽第一天給小明 10 元,第二天給 20 元,第三天給 30 元,請問小明要儲存到 5000 元需要多少天?諸如此類題目,最好使用條件式迴圈比較容易處理,如果使用計數迴圈(For) 來處理的話,將會增加程式複雜度。

一般而言,條件迴圈有下面兩種: 1. 前測試迴圈 ( 先判斷再執行 )2. 後測試迴圈 ( 先執行再判斷 )

Page 23: 第五章   迴 圈結構

5-4 條件迴圈 (Do/Loop) (2/3)

Page 24: 第五章   迴 圈結構

5-4 條件迴圈 (Do/Loop) (3/3)

Page 25: 第五章   迴 圈結構

5-5 while 迴圈 (1/7)

如果預先已知道了迴圈執行次數,使用 for 計數迴圈是一個很好選擇,但事實並非永遠如此。如果不能預先知道迴圈次數的話,使用 while 迴圈會是一個好選擇。 while 迴圈是屬於前測試迴圈,當條件式「成立(True) 」時,則執行迴圈敘述。

Page 26: 第五章   迴 圈結構

5-5 while 迴圈 (2/7)

Page 27: 第五章   迴 圈結構

5-5 while 迴圈 (3/7)

Page 28: 第五章   迴 圈結構

5-5 while 迴圈 (4/7)

Page 29: 第五章   迴 圈結構

5-5 while 迴圈 (4/7) -1

Page 30: 第五章   迴 圈結構

5-5 while 迴圈 (5/7)

雖然上面例子,似乎無法明顯看出 while 迴圈優點,但是有些時候使用 for 迴圈並不容易描述想做的事情,例如如果想要知道 2的多少次方才會大於 1,000 ,由於事先並不知道到底是多少,所以很難設定 for 迴圈之中的變數值,勉強去用也會顯得很累贅,但是如果改用 while 迴圈,就會變得很簡單:

實例 1 :求 2 的多少次方才會大於 1,000呢?

Page 31: 第五章   迴 圈結構

5-5 while 迴圈 (6/7)

Page 32: 第五章   迴 圈結構

5-5 while 迴圈 (7/7)

Page 33: 第五章   迴 圈結構

5-6 do/while 迴圈 (1/3)

do/while 是屬於後測試迴圈,當條件式「 成立 (True) 」時,則執行迴圈敘述。

Page 34: 第五章   迴 圈結構

5-6 do/while 迴圈 (2/3)

Page 35: 第五章   迴 圈結構

5-6 do/while 迴圈 (3/3)

Page 36: 第五章   迴 圈結構

5-7 break 與 continue 敘述

break 與 continue 敘述主要是應用在 for 與while 迴圈當中,其中 break 敘述的目的就是用來中斷程式的執行動作。而 continue敘述則是用來繼續執行某一動作。

Page 37: 第五章   迴 圈結構

5-7.1 break 敘述 (1/2)

break 敘述會使程式強迫跳離迴圈,繼續執行迴圈外下一個敘述,若其出現在巢狀迴圈內,則跳離該層迴圈,而 break 敘述在for 與 while 迴圈中的比較如下:

Page 38: 第五章   迴 圈結構

5-7.1 break 敘述 (2/2)

此行執行不到

Page 39: 第五章   迴 圈結構

5-7.2 continue 敘述 (1/2)

continue 則是強迫程式跳到迴圈的起頭,當遇到其敘述時,停止執行迴圈主體,而到迴圈的開始處繼續執 行 , 而 continue 敘 述 在 for 與while 迴圈中的比較如下:

Page 40: 第五章   迴 圈結構

5-7.2 continue 敘述 (2/2)