Presentation is loading. Please wait.

Presentation is loading. Please wait.

5 重複迴圈 5.1 增減運算符號 增量運算符號 減量運算符號

Similar presentations


Presentation on theme: "5 重複迴圈 5.1 增減運算符號 增量運算符號 減量運算符號"— Presentation transcript:

1 5 重複迴圈 5.1 增減運算符號 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.2 減量運算符號 -- 5-4
5 重複迴圈 5.1 增減運算符號 5-2 5.1.1 增量運算符號 5.1.2 減量運算符號 /--與算術運算 5-6 /--與關係運算 5-7 5.2 迴圈敘述 5-8 5.2.1 前測試迴圈while 5-9 5.2.2 計數器counter 5.2.3 後測試迴圈do-while 5-16 5.2.4 計數型迴圈for 5-23 5.3 巢狀迴圈 5-28 5.3.1 while巢狀迴圈 5-29 5.3.2 do-while巢狀迴圈 5-30 5.3.3 for巢狀迴圈 5-31 5.4 無窮迴圈 5-33 5.4.1 無窮while 5-33 5.4.2 無窮do-while 5-33 5.4.3 無窮for 5-34 5.5 中斷與繼續 5-35 5.5.1 break敘述 5-35 5.5.2 continue敘述 5-39

2 5.1 增減運算符號 雖然C++ 語言已經提供了算術運算符號的加法(+)與減法(-)與混合指定運算符號的加法指定(+=)與減法指定(-=)等符號,但為了提供使用者更多的選擇,C++ 語言還提供增量(++)與減量(--)運算符號。

3 5.1.1 增量運算符號 ++ 增量(increment)運算就是運算元加1。 範例一 範例二
增量運算符號 ++ 增量(increment)運算就是運算元加1。 範例一 num = num + 1; //num的值加1 num += 1; //num的值加1 範例二 num++; //功能與num=num+1相同

4 5.1.1 增量運算符號 ++ (續) ++變數 //前置型增量 變數++ //後置型增量 前置型增量 int num = 1;
增量運算符號 ++ (續) ++變數 //前置型增量 變數++ //後置型增量 前置型增量 int num = 1; cout << ++num; //先執行++num=2,再輸出num 後置型增量 cout << num++; //先輸出num=1再執行num++

5 5.1.2 減量運算符號 -- 減量(decrement)運算就是運算元減1。 範例一 範例二
減量運算符號 -- 減量(decrement)運算就是運算元減1。 範例一 num = num - 1; //num的值減1 num -= 1; //num的值減1 範例二 num--; //功能與num=num-1相同

6 5.1.2 減量運算符號 – (續) --變數 //前置型減量 變數-- //後置型減量 前置型減量 int num = 1;
減量運算符號 – (續) --變數 //前置型減量 變數-- //後置型減量 前置型減量 int num = 1; cout << --num; //先執行--num=2,再輸出num 後置型減量 cout << num--; //先輸出num=1再執行num--

7 5.1.3 ++/--與算術運算式 後置增量與運算式 a = 5; b = 2;
/--與算術運算式 後置增量與運算式 a = 5; b = 2; x = a * b++; //先x=a*b=10,後b=b+1=3 前置增量與運算式 x = a * ++b; //先b=b+1=3,後x=a*b=15

8 5.1.3 ++/--與算術運算式 (續) 錯誤的前置增量與運算式 a = 5; b = 2;
/--與算術運算式 (續) 錯誤的前置增量與運算式 a = 5; b = 2; x = ++(a * b); //錯誤, 需要Lvalue 錯誤的後置增量與運算式 x = (a * b)++; //錯誤, 需要Lvalue

9 5.1.4 ++/--與關係運算式 後置減量與運算式 n = 0;
/--與關係運算式 後置減量與運算式 n = 0; if(n-- <= 0) //先判斷n<0,後n=n-1=-1 cout << n << " 是負數"; 前置減量與運算式 if(--n < 0) //先n=n-1=-1,後判斷n<0

10 5.2 迴圈敘述 非迴圈敘述 int i = 1; //i=1 cout << i << endl;
5.2 迴圈敘述 非迴圈敘述 int i = 1; //i=1 cout << i << endl; i = i + 1; //i=1+1=2 i = i + 1; //i=2+1=3 i = i + 1; //i=3+1=4 i = i + 1; //i=4+1=5 迴圈敘述 for(int i=1; i<=5; i++) cout << i << endl;

11 5.2.1 前測試迴圈while 單行型while敘述 while (條件運算式) 單一敘述; 區塊型while敘述

12 前測試迴圈while (續)

13 5.2.1 前測試迴圈while (續) 範例 cin >> year; //輸入year
while (year != 0) //若year!=0則迴圈成立 { cin >> year; //輸入year }

14 計數器counter

15 5.2.2 計數器counter (續) 範例一 int count = 1; //計數值count = 1
while (count <= 9) //設定while條件運算式 { cout << count; //輸出count值 count++; //計數值count加1 } 範例二

16 5.2.2 計數器counter (續) 範例三 int count = 0; //計數值count = 0
while (count < 9) //設定while條件運算式 { count++; //計數值count加1 cout << count; //輸出count值 } 範例四 while (count++ < 9) //設定while條件運算式

17 5.2.2 計數器counter (續) 範例五 int count = 10; //計數值count = 10
while (--count >= 1) //設定while條件運算式 cout << count; //輸出count值

18 Ex 8 寫一個C++程式,計算 …+100 的總和。

19 5.2.3 後測試迴圈do-while 單行型do-while迴圈敘述 do 單一敘述; while (條件運算式);

20 後測試迴圈do-while (續)

21 5.2.3 後測試迴圈do-while (續) 範例一 do { cin >> year; //輸入year
} while (year != 0); //若year!=0則迴圈繼續

22 5.2.3 後測試迴圈do-while (續) 範例二 (計數型do-while)
int count = 1; //計數值count = 1 do { cout << count; //輸出count值 count++; //計數值count加1 } while (count <= 9); //設定while條件運算式 範例三 (計數型do-while) } while (++count <= 9); //設定while條件運算式

23 後測試迴圈do-while (續)

24 5.2.3 後測試迴圈do-while (續) 範例四 (遞減型計數) int count = 9; //計數值count = 9 do
cout << count; //輸出count值 while (--count > 0); //設定while條件運算式

25 5.2.4 計數型迴圈for 單行型for迴圈敘述 for ( 起始運算式; 條件運算式; 更新運算式 ) 單一敘述; 區塊型for迴圈敘述
While迴圈及計數器 單行型for迴圈敘述 for ( 起始運算式; 條件運算式; 更新運算式 ) 單一敘述; 區塊型for迴圈敘述 for ( 起始運算式; 條件運算式; 更新運算式 ) { 多敘述區; } 範例 for(int i=1; i<=9; i++) cout << i << ' '; int count = 1; while (count <= 9) { cout << count; count++; }

26 5.2.4 計數型迴圈for (續) 範例二 for (int i=0; i<10; i++) //宣告並使用i變數
cout << 2*i << endl; for (int i=0; i<10; i++) //重複宣告並使用i變數 cout << i*i << endl; 範例三 int i = 0; //宣告並起始變數i for (i=0; i<10; i++) //使用i變數 for (i=0; i<10; i++) //重複使用i變數

27 計數型迴圈for (續)

28 5.2.4 計數型迴圈for (續) 基本型for迴圈敘述 int sum = 0; //宣告並起始sum
for (int count = 1; count <= MAX; count++) //for敘述 { //start of for sum += count; //迴圈敘述 } //end of for 簡化型for迴圈敘述 for (int count = 1; count <= MAX; count++) // for敘述

29 5.2.4 計數型迴圈for (續) 省略型for迴圈敘述 int count = 1, sum = 0; //宣告與起始count,sum
for ( ; count <= MAX; count++) //省略起始運算式 sum += count; //迴圈敘述 for ( ; count <= MAX; ) //省略起始與更新運算式 sum += count++; //迴圈敘述

30 5.2.4 計數型迴圈for (續) 單行型for迴圈敘述 int count, sum; //宣告count, sum
for (count = 1, sum = 0; count <= MAX; sum += count, count++);

31 5.3 巢狀迴圈 巢狀迴圈(nested loops)就是在迴圈中包含另一個迴圈,也就是大迴圈包小迴圈。而且可以在for迴圈中包含while迴圈或do迴圈,反之亦然。

32 5.3.1 while巢狀迴圈 範例 int count1 = 1; //宣告外層迴圈計數值
while (count1 <= 2) //定義外層while迴圈 { //外層while迴圈起點 int count2 = 1; //宣告內層迴圈計數值 while (count2 <= 3) //定義內層while迴圈 { //內層while迴圈起點 cout << count1 * count2; //輸出運算值 count2++; //內層計數值加1 } //內層while迴圈結束點 count1++; //外層計數值加1 cout << endl; //跳行 } //外層while迴圈結束點

33 5.3.2 do-while巢狀迴圈 範例 int count1 = 1; //宣告外層do迴圈計數初值 do //定義外層do迴圈
cout << count1 * count2; //輸出運算值 while (++count2 <= 3); //內層while條件與返回點 cout << endl; //跳行 } while (++count1 <= 2); //外層while條件與返回點

34 5.3.3 for巢狀迴圈 範例 for (count1 = 1; count1 <= 2; count1 ++) //外層迴圈 {
cout << count1 * count2; }

35 5.4 無窮迴圈 無窮迴圈就是迴圈將永遠的循環下去,方法是另for或while敘述的條件永遠成立則形成for或while的無窮迴圈。
5.4 無窮迴圈 無窮迴圈就是迴圈將永遠的循環下去,方法是另for或while敘述的條件永遠成立則形成for或while的無窮迴圈。 若要中斷無窮迴圈,則可以在迴圈中加if敘述,再配合5.5.1節的break敘述中斷迴圈。

36 5.4.1 無窮while 範例 while (true) //條件永遠成立(true) {
cout << "forever"; }

37 5.4.2 無窮do-while 範例 do { cout << "forever";
} while (true); //條件永遠成立(true)

38 無窮for 範例 for ( ; ; ) //無起始也無終止 { cout << "forever"; }

39 5.5 中斷與繼續 中斷(break)敘述用來提前結束迴圈的執行。 繼續(continue)敘述則用來跳過某些敘述而繼續下一個計數。

40 break敘述 break; 範例 for (count = 0; count <= stringlength; count++) { if (string[count] == letter) //若條件成立 break; //中斷for迴圈 }

41 5.5.2 continue敘述 continue; 範例
for (count = 1; count <= maxnum; count++) { if (count % 3 != 0) //若不是3的倍數 continue; //返回迴圈起點 cout << count; //若非3的倍數則不顯示 }

42 Ex 9 寫一C++程式,利用巢狀for迴圈計算列出九九乘法表。如下所示: 2*1= 2 2*2= 4 2*3= 6 2*4= 8
2*1= 2 2*2= 4 2*3= 6 2*4= 8 2*5=10 2*6=12 . 9*8=72 9*9=81

43 Ex 9 寫一C++程式,利用巢狀for迴圈計算列出九九乘法表。如下所示:

44 Homework 4 課本第5-42頁第19題 寫一C++程式,以亂數擲10000次骰子然後計算並列出出現1、2 、 3 、 4 、 5 、 6點的次數。


Download ppt "5 重複迴圈 5.1 增減運算符號 增量運算符號 減量運算符號"

Similar presentations


Ads by Google