Presentation is loading. Please wait.

Presentation is loading. Please wait.

第五章 迴圈結構 授課老師:___________.

Similar presentations


Presentation on theme: "第五章 迴圈結構 授課老師:___________."— Presentation transcript:

1 第五章 迴圈結構 授課老師:___________

2 本章學習目標 1.讓讀者瞭解迴圈結構的種類、語法及適用時機。 2.說明計數迴圈與條件式迴圈的差異。

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

4 前言 (1/3) 在我們的日常生活中,有許多事都是具有重覆性的, 例如一天有 24 小時, 一星期有七天,同一門課要上18 次才能拿到學分,一個大學學位可以要修132個學分才能拿到。或每一位學生每一月考要考五科,一學期要考三次月考,諸如此類的問題,如果只靠人工處理必定是一件非常煩的工作。因此,我們可以利用「迴圈結構」來解決此類所面臨的問題。

5 前言 (2/3)

6 前言 (3/3) 重要概念: 如果想要列印全班50位同學的座位表時,如果利用循序結構,就比較沒有效率。如5-2圖所示:
一般迴圈結構可分為兩種:計數迴圈與條件迴圈。

7 5-1 計數迴圈(1/2) 計數迴圈可以想像成一個「計數器」,你設定多少次,此迴圈就會執行多少次。在VC#2010中計數迴圈又可分為下列兩種: (1) for迴圈:是單層次的迴圈結構 使用時機:適用於「單一變數」的重覆變化。 典型例子:1+2+3+…+10

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

9 5-2 for迴圈(1/7)

10 5-2 for迴圈(2/7)

11 5-2 for迴圈(3/7)

12 5-2 for迴圈(4/7) 【使用時機】已知程式的執行次數固定且重覆時,使用此種迴圈最適合。
【流程圖】當程式執行「敘述一」之後,我們可以重新執行「敘述二」,直到 條件式不成立為止。如圖5-3所示:

13 5-2 for迴圈(5/7)

14 5-2 for迴圈(6/7)

15 5-2 for迴圈(7/7)

16 5-3 巢狀迴圈for的使用(1/6) 【定義】指迴圈內還有其他的迴圈,稱為巢狀迴圈(Nested Loop)。
因為它像鳥巢一樣,是由一層層組合而成。

17 5-3 巢狀迴圈for的使用(2/6) 【說明】 當外迴圈的計數變數1值增加一次時,則內迴圈必須Run一回合,也就是說,計數變數2必須從「初值」執行到「終值條件」結束。 基本上,常見的巢狀迴圈有下列三種不同的變化:

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

19 5-3 巢狀迴圈for的使用(4/6) 【解析】 上述的九九乘法表共有內外兩層迴圈,當外迴圈「i變數」變動1次時,則內迴圈則要執行9次,所以,當外迴圈「i變數」由1~9時,內迴圈要執行81次。其執行過程如下所示:

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

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

22 5-4 條件迴圈(Do/Loop) (1/3) 如果不能預先知道迴圈的次數的話,則必須要使用條件迴圈來解決。例如王媽媽第一天給小明10元,第二天給20元,第三天給30元,請問小明要儲存到5000元需要多少天?諸如此類的題目,最好使用條件式迴圈來處理比較容易,如果使用計數迴圈(For/Next)來處理的話,將會增加程式的複雜度。 一般而言,條件迴圈有下面兩種: (1)前測試迴圈(先判斷再執行) (2)後測試迴圈(先執行再判斷)

23 5-4 條件迴圈(Do/Loop) (2/3) (1)前測試迴圈(先判斷再執行)
 執行前先檢查是否符合條件式,若符合則執行迴圈,不符合則跳出迴圈。也 就是所謂的「先判斷條件式再執行迴圈」。 【語法】

24 5-4 條件迴圈(Do/Loop) (3/3) (2)後測試迴圈(先執行再判斷)
會先執行迴圈一次之後,再執行條件式判斷,不符合則跳出迴圈,但至少會執行一次迴圈。也就是所謂的「先執行迴圈再判斷條件式」。 【語法】 【注意】 後測試迴圈的while(條件式)後面必須要加上分號(;),而前測試迴圈的while則不需要。

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

26 while迴圈(2/7)

27 while迴圈(3/7)

28 5-5 while迴圈(4/7) 【比較說明】for迴圈 與 while迴圈之比較 使用for迴圈 2. 使用while迴圈
說明:執行次數固定且重覆 說明:重覆但是執行次數無法確定的情況

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

30 while迴圈(6/7)

31 while迴圈(7/7) 牛刀小試1: 假如王媽媽第一天給小明1元,第二天給2元,請問到第幾天才能超過1000元。 【解答】

32 5-6 do/while迴圈(1/3) do/while是屬於後測試迴圈,當條件式「 成立(True)」時,則執行迴圈敘述。 【語法】
【說明】當條件式為「不成立(False)」時,跳出迴圈。此迴圈會先執行迴圈一次之後,再執行條件式判斷,不符合則跳出迴圈,但至少會執行一次迴圈。也就是所謂的「先執行迴圈再判斷條件式」。 【注意】 後測試迴圈的while(條件式)後面必須要加上分號(;),而前測試迴圈的while則不需要。

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

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

35 5-7 break與continue敘述 break與continue敘述主要是應用在for與while迴圈當中,其中:

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

37 5-7.1 break敘述 (2/2) 【實例1】1+2+3+…+10的程式中加入break敘述的情況如下: 說明:
當程式執行到行號50時,遇到break敘述,則直接跳出迴圈,再執行迴圈外的行號80敘述。所以,本程式的conut的值為0(代表沒有被執行到)。

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

39 5-7.2 continue敘述(2/2) 【實例1】1+2+3+…+10的程式中加入continue敘述的情況如下: 說明:
說明:當程式執行到行號50時,遇到continue敘述,則繼續執行迴圈內的行號40敘述。所以,本程式的conut的值為0(代表沒有被執行到)。


Download ppt "第五章 迴圈結構 授課老師:___________."

Similar presentations


Ads by Google