5 重複迴圈 5.1 增減運算符號 5-2 5.1 增減運算符號 5-2 5.1.1 增量運算符號 ++ 5-2...

44
5 5 重重重重 重重重重 5.1 5.1 增增增增增增 增增增增增增 5-2 5-2 5.1.1 5.1.1 增增增增增增 增增增增增增 ++ 5-2 ++ 5-2 5.1.2 5.1.2 增增增增增增 增增增增增增 -- 5-4 -- 5-4 5.1.3 5.1.3 ++/-- ++/-- 增增增增增 增增增增增 5-6 5-6 5.1.4 5.1.4 ++/-- ++/-- 增增增增增 增增增增增 5-7 5-7 5.2 5.2 增增增增 增增增增 5-8 5-8 5.2.1 5.2.1 增增增增增 增增增增增 while 5-9 while 5-9 5.2.2 5.2.2 增增增 增增增 counter counter 5- 5- 12 12 5.2.3 5.2.3 增增增增增 增增增增增 do-while 5-1 do-while 5-1 6 6 5.2.4 5.2.4 增增增增增 增增增增增 for 5-23 for 5-23 5.3 5.3 增增增增 增增增增 5-28 5-28 5.3.1 5.3.1 while while 增增增增 增增增增 5-29 5-29 5.3.2 5.3.2 do-while do-while 增增增增 增增增增 5-30 5-30 5.3.3 5.3.3 for for 增增增增 增增增增 5-31 5-31 5.4 5.4 增增增增 增增增增 5-33 5-33 5.4.1 5.4.1 增增 增增 while while 5-33 5-33 5.4.2 5.4.2 增增 增增 do-while do-while 5-33 5-33 5.4.3 5.4.3 增增 增增 for for 5-34 5-34 5.5 5.5 增增增增增 增增增增增 5-35 5-35 5.5.1 5.5.1 break break 增增 增增 5-35 5-35 5.5.2 5.5.2 continue continue 增增 增增 5-39 5-39
  • date post

    21-Dec-2015
  • Category

    Documents

  • view

    242
  • download

    5

Transcript of 5 重複迴圈 5.1 增減運算符號 5-2 5.1 增減運算符號 5-2 5.1.1 增量運算符號 ++ 5-2...

Page 1: 5 重複迴圈 5.1 增減運算符號 5-2 5.1 增減運算符號 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.2 減量運算符號 -- 5-4 5.1.2 減量運算符號

5 5 重複迴圈 重複迴圈 5.15.1 增減運算符號 增減運算符號 5-25-2 5.1.15.1.1 增量運算符號 增量運算符號 ++ 5-2++ 5-2 5.1.25.1.2 減量運算符號 減量運算符號 -- 5-4-- 5-4 5.1.35.1.3 ++/--++/-- 與算術運算 與算術運算 5-65-6 5.1.45.1.4 ++/--++/-- 與關係運算 與關係運算 5-75-7 5.25.2 迴圈敘述 迴圈敘述 5-85-8 5.2.15.2.1 前測試迴圈前測試迴圈 while 5-while 5-

99 5.2.25.2.2 計數器計數器 countercounter

5-125-12 5.2.35.2.3 後測試迴圈後測試迴圈 do-while do-while

5-16 5-16 5.2.45.2.4 計數型迴圈計數型迴圈 for 5-23for 5-23

5.35.3 巢狀迴圈巢狀迴圈 5-285-28 5.3.15.3.1 whilewhile 巢狀迴圈 巢狀迴圈 5-295-29 5.3.25.3.2 do-whiledo-while 巢狀迴圈 巢狀迴圈 5-35-3

00 5.3.35.3.3 forfor 巢狀迴圈巢狀迴圈 5-315-31 5.45.4 無窮迴圈無窮迴圈 5-335-33 5.4.15.4.1 無窮無窮 whilewhile 5-335-33 5.4.25.4.2 無窮無窮 do-whiledo-while 5-35-3

33 5.4.35.4.3 無窮無窮 forfor 5-345-34 5.55.5 中斷與繼續中斷與繼續 5-355-35 5.5.15.5.1 breakbreak 敘述敘述 5-355-35 5.5.25.5.2 continuecontinue 敘述敘述 5-35-3

99

Page 2: 5 重複迴圈 5.1 增減運算符號 5-2 5.1 增減運算符號 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.2 減量運算符號 -- 5-4 5.1.2 減量運算符號

5.1 5.1 增減運算符號增減運算符號 雖然雖然 C++ C++ 語言已經提供了算術運算符號的語言已經提供了算術運算符號的

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

Page 3: 5 重複迴圈 5.1 增減運算符號 5-2 5.1 增減運算符號 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.2 減量運算符號 -- 5-4 5.1.2 減量運算符號

5.1.1 5.1.1 增量運算符號 增量運算符號 ++++ 增量(增量( incrementincrement ))運算就是運算元加運算就是運算元加 11 。 。

範例一範例一 num = num + 1;num = num + 1; //num//num 的值加的值加 11 num += 1;num += 1; //num//num 的值加的值加 11

範例二範例二 num++;num++; //// 功能與功能與 num=num+1num=num+1

相同相同

Page 4: 5 重複迴圈 5.1 增減運算符號 5-2 5.1 增減運算符號 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.2 減量運算符號 -- 5-4 5.1.2 減量運算符號

5.1.1 5.1.1 增量運算符號 增量運算符號 ++ (++ ( 續續 )) ++++ 變數變數 //// 前置型增量前置型增量 變數變數 ++++ //// 後置型增量後置型增量

前置型增量前置型增量int num = 1;int num = 1;cout << ++num;cout << ++num; //// 先執行先執行 ++num=2,++num=2, 再輸出再輸出 nunumm

後置型增量後置型增量int num = 1;int num = 1;cout << num++;cout << num++; //// 先輸出先輸出 num=1num=1 再執行再執行 numnum++++

Page 5: 5 重複迴圈 5.1 增減運算符號 5-2 5.1 增減運算符號 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.2 減量運算符號 -- 5-4 5.1.2 減量運算符號

5.1.2 5.1.2 減量運算符號 減量運算符號 ---- 減量(減量( decrementdecrement ))運算就是運算元減運算就是運算元減 11 。 。

範例一範例一num = num - 1;num = num - 1; //num//num 的值減的值減 11num -= 1;num -= 1; //num//num 的值減的值減 11

範例二範例二num--;num--; //// 功能與功能與 num=num-1num=num-1 相同相同

Page 6: 5 重複迴圈 5.1 增減運算符號 5-2 5.1 增減運算符號 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.2 減量運算符號 -- 5-4 5.1.2 減量運算符號

5.1.2 5.1.2 減量運算符號 – 減量運算符號 – (( 續續 )) ---- 變數變數 //// 前置型減量前置型減量 變數變數 ---- //// 後置型減量後置型減量

前置型減量前置型減量int num = 1;int num = 1;cout << --num;cout << --num; //// 先執行先執行 --num=2,--num=2, 再輸出再輸出 nunumm

後置型減量後置型減量int num = 1;int num = 1;cout << num--;cout << num--; //// 先輸出先輸出 num=1num=1 再執行再執行 nunum--m--

Page 7: 5 重複迴圈 5.1 增減運算符號 5-2 5.1 增減運算符號 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.2 減量運算符號 -- 5-4 5.1.2 減量運算符號

5.1.3 ++/--5.1.3 ++/-- 與算術運算式與算術運算式 後置增量與運算式後置增量與運算式

a = 5;a = 5;b = 2;b = 2;x = a * b++;x = a * b++; //// 先先 x=a*b=10,x=a*b=10, 後後 b=b+1=3b=b+1=3

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

Page 8: 5 重複迴圈 5.1 增減運算符號 5-2 5.1 增減運算符號 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.2 減量運算符號 -- 5-4 5.1.2 減量運算符號

5.1.3 ++/--5.1.3 ++/-- 與算術運算式 與算術運算式 (( 續續 )) 錯誤的前置增量與運算式錯誤的前置增量與運算式

a = 5;a = 5;b = 2;b = 2;x = ++(a * b);x = ++(a * b); //// 錯誤錯誤 , , 需要需要 LvalueLvalue

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

Page 9: 5 重複迴圈 5.1 增減運算符號 5-2 5.1 增減運算符號 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.2 減量運算符號 -- 5-4 5.1.2 減量運算符號

5.1.4 ++/--5.1.4 ++/-- 與關係運算式與關係運算式 後置減量與運算式後置減量與運算式

n = 0;n = 0;if(n-- <= 0)if(n-- <= 0) //// 先判斷先判斷 n<0,n<0, 後後 n=n-1=-1n=n-1=-1

cout << n << " cout << n << " 是負數是負數 ";";

前置減量與運算式前置減量與運算式n = 0;n = 0;if(--n < 0)if(--n < 0) //// 先先 n=n-1=-1,n=n-1=-1, 後判斷後判斷 nn<0<0

cout << n << " cout << n << " 是負數是負數 ";";

Page 10: 5 重複迴圈 5.1 增減運算符號 5-2 5.1 增減運算符號 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.2 減量運算符號 -- 5-4 5.1.2 減量運算符號

5.2 5.2 迴圈敘述 迴圈敘述 非迴圈敘述非迴圈敘述

int i = 1;int i = 1; //i=1//i=1cout << i << endl;cout << i << endl;i = i + 1;i = i + 1; //i=1+1=2//i=1+1=2cout << i << endl;cout << i << endl;i = i + 1; i = i + 1; //i=2+1=3//i=2+1=3cout << i << endl;cout << i << endl;i = i + 1; i = i + 1; //i=3+1=4//i=3+1=4cout << i << endl;cout << i << endl;i = i + 1; i = i + 1; //i=4+1=5//i=4+1=5cout << i << endl;cout << i << endl;

迴圈敘述迴圈敘述for(int i=1; i<=5; i++)for(int i=1; i<=5; i++)

cout << i << endl;cout << i << endl;

Page 11: 5 重複迴圈 5.1 增減運算符號 5-2 5.1 增減運算符號 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.2 減量運算符號 -- 5-4 5.1.2 減量運算符號

5.2.1 5.2.1 前測試迴圈前測試迴圈 whilewhile 單行型單行型 whilewhile 敘述敘述 while (while ( 條件運算式條件運算式 ))

單一敘述單一敘述 ;;

區塊型區塊型 whilewhile 敘述敘述 while (while ( 條件運算式條件運算式 ))

{{多敘述區多敘述區 ;;

}}

Page 12: 5 重複迴圈 5.1 增減運算符號 5-2 5.1 增減運算符號 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.2 減量運算符號 -- 5-4 5.1.2 減量運算符號

5.2.1 5.2.1 前測試迴圈前測試迴圈 while (while ( 續續 ))

while 條件while 條件

其他敘述其他敘述

1 (true)

0 (false)

{C++ 敘述區

}

{C++ 敘述區

}

結束 while

Page 13: 5 重複迴圈 5.1 增減運算符號 5-2 5.1 增減運算符號 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.2 減量運算符號 -- 5-4 5.1.2 減量運算符號

5.2.1 5.2.1 前測試迴圈前測試迴圈 while (while ( 續續 )) 範例範例

cin >> year;cin >> year; //// 輸入輸入 yearyearwhile (year != 0)while (year != 0) //// 若若 year!=0year!=0 則迴圈則迴圈成立成立{{

cin >> year;cin >> year; //// 輸入輸入 yearyear}}

Page 14: 5 重複迴圈 5.1 增減運算符號 5-2 5.1 增減運算符號 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.2 減量運算符號 -- 5-4 5.1.2 減量運算符號

5.2.2 5.2.2 計數器計數器 countercounter

判斷計數值判斷計數值

其他敘述其他敘述

1 (true)

0 (false)

{C++ 敘述區

{C++ 敘述區

結束 while

計數器初值計數器初值

計數器增減}

計數器增減}

Page 15: 5 重複迴圈 5.1 增減運算符號 5-2 5.1 增減運算符號 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.2 減量運算符號 -- 5-4 5.1.2 減量運算符號

5.2.2 5.2.2 計數器計數器 counter (counter ( 續續 )) 範例一範例一

int count = 1;int count = 1; //// 計數值計數值 count = 1count = 1while (count <= 9)while (count <= 9) //// 設定設定 whilewhile 條件運算式條件運算式{ {

cout << count;cout << count; //// 輸出輸出 countcount 值值count++;count++; //// 計數值計數值 countcount 加加 11

} } 範例二範例二

int count = 1;int count = 1; //// 計數值計數值 count = 1count = 1while (count <= 9)while (count <= 9) //// 設定設定 whilewhile 條件運算式條件運算式{ {

count++;count++; //// 計數值計數值 countcount 加加 11cout << count;cout << count; //// 輸出輸出 countcount 值值

} }

Page 16: 5 重複迴圈 5.1 增減運算符號 5-2 5.1 增減運算符號 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.2 減量運算符號 -- 5-4 5.1.2 減量運算符號

5.2.2 5.2.2 計數器計數器 counter (counter ( 續續 )) 範例三範例三

int count = 0;int count = 0; //// 計數值計數值 count = 0count = 0while (count < 9)while (count < 9) //// 設定設定 whilewhile 條件運算式條件運算式{ {

count++;count++; //// 計數值計數值 countcount 加加 11cout << count;cout << count; //// 輸出輸出 countcount 值值

}} 範例四範例四

int count = 0;int count = 0; //// 計數值計數值 count = 0count = 0while (count++ < 9)while (count++ < 9) //// 設定設定 whilewhile 條件運算式條件運算式

cout << count;cout << count; //// 輸出輸出 countcount 值值

Page 17: 5 重複迴圈 5.1 增減運算符號 5-2 5.1 增減運算符號 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.2 減量運算符號 -- 5-4 5.1.2 減量運算符號

5.2.2 5.2.2 計數器計數器 counter (counter ( 續續 )) 範例五範例五

int count = 10;int count = 10; //// 計數值計數值 count = 10count = 10while (--count >= 1)while (--count >= 1) //// 設定設定 whilewhile 條件運算式條件運算式

cout << count;cout << count; //// 輸出輸出 countcount 值值

Page 18: 5 重複迴圈 5.1 增減運算符號 5-2 5.1 增減運算符號 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.2 減量運算符號 -- 5-4 5.1.2 減量運算符號

Ex 8Ex 8

寫一個寫一個 C++C++ 程式,計算 程式,計算 1+2+3+…+100 1+2+3+…+100 的的總和。總和。

Page 19: 5 重複迴圈 5.1 增減運算符號 5-2 5.1 增減運算符號 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.2 減量運算符號 -- 5-4 5.1.2 減量運算符號

5.2.3 5.2.3 後測試迴圈後測試迴圈 do-whiledo-while 單行型單行型 do-whiledo-while 迴圈敘述迴圈敘述 dodo

單一敘述單一敘述 ;;while (while ( 條件運算式條件運算式 ););

區塊型區塊型 do-whiledo-while 迴圈敘述迴圈敘述 dodo

{{多敘述區多敘述區 ;;

} while (} while ( 條件運算式條件運算式 ););

Page 20: 5 重複迴圈 5.1 增減運算符號 5-2 5.1 增減運算符號 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.2 減量運算符號 -- 5-4 5.1.2 減量運算符號

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

while 條件while 條件

其他敘述其他敘述

1 (true)

0 (false)

{ C++ 敘述

}

{ C++ 敘述

}

dodo

Page 21: 5 重複迴圈 5.1 增減運算符號 5-2 5.1 增減運算符號 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.2 減量運算符號 -- 5-4 5.1.2 減量運算符號

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

範例一範例一dodo{{

cin >> year;cin >> year; //// 輸入輸入 yearyear} while (year != 0);} while (year != 0); //// 若若 year!=0year!=0 則迴圈繼續則迴圈繼續

Page 22: 5 重複迴圈 5.1 增減運算符號 5-2 5.1 增減運算符號 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.2 減量運算符號 -- 5-4 5.1.2 減量運算符號

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

範例二 範例二 (( 計數型計數型 do-while)do-while)int count = 1;int count = 1; //// 計數值計數值 count = 1count = 1dodo{ {

cout << count;cout << count; //// 輸出輸出 countcount 值值count++;count++; //// 計數值計數值 countcount 加加 11

} while (count <= 9);} while (count <= 9); //// 設定設定 whilewhile 條件運算式條件運算式

範例三 範例三 (( 計數型計數型 do-while)do-while)int count = 1;int count = 1; //// 計數值計數值 count = 1count = 1dodo{ {

cout << count;cout << count; //// 輸出輸出 countcount 值值} while (++count <= 9);} while (++count <= 9); //// 設定設定 whilewhile 條件運算式條件運算式

Page 23: 5 重複迴圈 5.1 增減運算符號 5-2 5.1 增減運算符號 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.2 減量運算符號 -- 5-4 5.1.2 減量運算符號

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

} while 條件} while 條件

其他敘述其他敘述

1 (true)

0 (false)

do {敘述區

do {敘述區

計數器初值計數器初值

.增減運算式.增減運算式

Page 24: 5 重複迴圈 5.1 增減運算符號 5-2 5.1 增減運算符號 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.2 減量運算符號 -- 5-4 5.1.2 減量運算符號

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

範例四 範例四 (( 遞減型計數遞減型計數 ))int count = 9;int count = 9; //// 計數值計數值 count = 9count = 9dodo

cout << count;cout << count; //// 輸出輸出 countcount 值值while (--count > 0);while (--count > 0); //// 設定設定 whilewhile 條條件運算式件運算式

Page 25: 5 重複迴圈 5.1 增減運算符號 5-2 5.1 增減運算符號 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.2 減量運算符號 -- 5-4 5.1.2 減量運算符號

5.2.4 5.2.4 計數型迴圈計數型迴圈 forfor 單行型單行型 forfor 迴圈敘述迴圈敘述 for ( for ( 起始運算式起始運算式 ; ; 條件運算式條件運算式 ;;

更新運算式 更新運算式 ))單一敘述單一敘述 ;;

區塊型區塊型 forfor 迴圈敘述迴圈敘述 for ( for ( 起始運算式起始運算式 ; ; 條件運算式條件運算式 ;;

更新運算式 更新運算式 )){{

多敘述區多敘述區 ;;}}

範例範例for(int i=1; i<=9; i++)for(int i=1; i<=9; i++)

cout << i << ' ';cout << i << ' ';

判斷計數值判斷計數值

其他敘述其他敘述

1 (true)

0 (false)

{C++ 敘述區

{C++ 敘述區

結束 while

計數器初值計數器初值

計數器增減}

計數器增減}

While 迴圈及計數器

int count = 1;int count = 1;while (count <= 9)while (count <= 9){ {

cout << count;cout << count;count++;count++;

} }

Page 26: 5 重複迴圈 5.1 增減運算符號 5-2 5.1 增減運算符號 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.2 減量運算符號 -- 5-4 5.1.2 減量運算符號

5.2.4 5.2.4 計數型迴圈計數型迴圈 for (for ( 續續 )) 範例二範例二

for (int i=0; i<10; i++)for (int i=0; i<10; i++) //// 宣告並使用宣告並使用 ii 變數變數cout << 2*i << endl;cout << 2*i << endl;

for (int i=0; i<10; i++)for (int i=0; i<10; i++) //// 重複宣告並使用重複宣告並使用 ii 變數變數cout << i*i << endl;cout << i*i << endl;

範例三範例三int i = 0;int i = 0; //// 宣告並起始變數宣告並起始變數 iifor (i=0; i<10; i++)for (i=0; i<10; i++) //// 使用使用 ii 變數變數

cout << 2*i << endl;cout << 2*i << endl;for (i=0; i<10; i++)for (i=0; i<10; i++) //// 重複使用重複使用 ii 變數變數

cout << i*i << endl;cout << i*i << endl;

Page 27: 5 重複迴圈 5.1 增減運算符號 5-2 5.1 增減運算符號 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.2 減量運算符號 -- 5-4 5.1.2 減量運算符號

5.2.4 5.2.4 計數型迴圈計數型迴圈 for (for ( 續續 ))

=控制變數 條件值=控制變數 條件值

設定計數值設定計數值

其他敘述其他敘述

1 (true)

0 (false)

{C++ 敘述區

{C++ 敘述區

結束 for

控制變數+=增減值}

控制變數+=增減值}

重複 for

Page 28: 5 重複迴圈 5.1 增減運算符號 5-2 5.1 增減運算符號 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.2 減量運算符號 -- 5-4 5.1.2 減量運算符號

5.2.4 5.2.4 計數型迴圈計數型迴圈 for (for ( 續續 )) 基本型基本型 forfor 迴圈敘述迴圈敘述

int sum = 0;int sum = 0; //// 宣告並起始宣告並起始 sumsumfor (int count = 1; count <= MAX; count++)for (int count = 1; count <= MAX; count++) //for//for 敘述敘述{{ //start of for//start of for

sum += count;sum += count; //// 迴圈敘述迴圈敘述}} //end of for//end of for

簡化型簡化型 forfor 迴圈敘述迴圈敘述int sum = 0;int sum = 0; //// 宣告並起始宣告並起始 sumsumfor (int count = 1; count <= MAX; count++)for (int count = 1; count <= MAX; count++) // for// for 敘述敘述

sum += count;sum += count; //// 迴圈敘述迴圈敘述

Page 29: 5 重複迴圈 5.1 增減運算符號 5-2 5.1 增減運算符號 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.2 減量運算符號 -- 5-4 5.1.2 減量運算符號

5.2.4 5.2.4 計數型迴圈計數型迴圈 for (for ( 續續 )) 省略型省略型 forfor 迴圈敘述迴圈敘述

int count = 1, sum = 0;int count = 1, sum = 0; //// 宣告與起始宣告與起始 count,scount,sumumfor ( ; count <= MAX; count++)for ( ; count <= MAX; count++) //// 省略起始運算式省略起始運算式

sum += count;sum += count; //// 迴圈敘述迴圈敘述

省略型省略型 forfor 迴圈敘述迴圈敘述int count = 1, sum = 0;int count = 1, sum = 0; //// 宣告與起始宣告與起始 count,scount,sumumfor ( ; count <= MAX; )for ( ; count <= MAX; ) //// 省略起始與更新運算省略起始與更新運算式式

sum += count++;sum += count++; //// 迴圈敘述迴圈敘述

Page 30: 5 重複迴圈 5.1 增減運算符號 5-2 5.1 增減運算符號 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.2 減量運算符號 -- 5-4 5.1.2 減量運算符號

5.2.4 5.2.4 計數型迴圈計數型迴圈 for (for ( 續續 )) 單行型單行型 forfor 迴圈敘述迴圈敘述

int count, sum;int count, sum; //// 宣告宣告 coucount, sumnt, sumfor (count = 1, sum = 0; count <= MAX; sum += count, count++);for (count = 1, sum = 0; count <= MAX; sum += count, count++);

Page 31: 5 重複迴圈 5.1 增減運算符號 5-2 5.1 增減運算符號 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.2 減量運算符號 -- 5-4 5.1.2 減量運算符號

5.3 5.3 巢狀迴圈巢狀迴圈 巢狀迴圈(巢狀迴圈( nested loopsnested loops ))就是在迴圈中就是在迴圈中

包含另一個迴圈,也就是大迴圈包小迴圈。包含另一個迴圈,也就是大迴圈包小迴圈。而且可以在而且可以在 forfor 迴圈中包含迴圈中包含 whilewhile 迴圈或迴圈或 ddoo 迴圈,反之亦然。迴圈,反之亦然。

Page 32: 5 重複迴圈 5.1 增減運算符號 5-2 5.1 增減運算符號 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.2 減量運算符號 -- 5-4 5.1.2 減量運算符號

5.3.1 while5.3.1 while 巢狀迴圈巢狀迴圈 範例範例

int count1 = 1;int count1 = 1; //// 宣告外層迴圈計數值宣告外層迴圈計數值while (count1 <= 2)while (count1 <= 2) //// 定義外層定義外層 whilewhile 迴圈迴圈{{ //// 外層外層 whilewhile 迴圈起點迴圈起點

int count2 = 1;int count2 = 1; //// 宣告內層迴圈計數值宣告內層迴圈計數值while (count2 <= 3) while (count2 <= 3) //// 定義內層定義內層 whilewhile 迴圈迴圈{{ //// 內層內層 whilewhile 迴圈起點迴圈起點

cout << count1 * count2;cout << count1 * count2; //// 輸出運算值輸出運算值count2++;count2++; //// 內層計數值加內層計數值加 11

}} //// 內層內層 whilewhile 迴圈結束點迴圈結束點count1++;count1++; //// 外層計數值加外層計數值加 11cout << endl;cout << endl; //// 跳行跳行

}} //// 外層外層 whilewhile 迴圈結束點迴圈結束點

Page 33: 5 重複迴圈 5.1 增減運算符號 5-2 5.1 增減運算符號 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.2 減量運算符號 -- 5-4 5.1.2 減量運算符號

5.3.2 do-while5.3.2 do-while 巢狀迴圈巢狀迴圈 範例範例

int count1 = 1;int count1 = 1; //// 宣告外層宣告外層 dodo 迴圈計數初值迴圈計數初值dodo //// 定義外層定義外層 dodo 迴圈迴圈{{ //// 外層外層 dodo 迴圈起點迴圈起點int count2 = 1;int count2 = 1; //// 宣告內層宣告內層 dodo 迴圈計數初值迴圈計數初值dodo //// 定義內層定義內層 dodo 迴圈迴圈cout << count1 * count2;cout << count1 * count2; //// 輸出運算值輸出運算值while (++count2 <= 3);while (++count2 <= 3); //// 內層內層 whilewhile 條件與返回點條件與返回點cout << endl;cout << endl; //// 跳行跳行} while (++count1 <= 2); } while (++count1 <= 2); //// 外層外層 whilewhile 條件與返回點條件與返回點

Page 34: 5 重複迴圈 5.1 增減運算符號 5-2 5.1 增減運算符號 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.2 減量運算符號 -- 5-4 5.1.2 減量運算符號

5.3.3 for5.3.3 for 巢狀迴圈巢狀迴圈 範例範例

for (count1 = 1; count1 <= 2; count1 ++)for (count1 = 1; count1 <= 2; count1 ++) ////外層迴圈外層迴圈{{

for (count2 = 1; count1 <= 3; count2 ++)for (count2 = 1; count1 <= 3; count2 ++) ////內層迴圈內層迴圈

cout << count1 * count2;cout << count1 * count2;}}

Page 35: 5 重複迴圈 5.1 增減運算符號 5-2 5.1 增減運算符號 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.2 減量運算符號 -- 5-4 5.1.2 減量運算符號

5.4 5.4 無窮迴圈無窮迴圈 無窮迴圈無窮迴圈就是迴圈將永遠的循環下去,方就是迴圈將永遠的循環下去,方

法是另法是另 forfor 或或 whilewhile 敘述的條件永遠成立敘述的條件永遠成立則形成則形成 forfor 或或 whilewhile 的無窮迴圈。的無窮迴圈。

若要中斷無窮迴圈,則可以在迴圈中加若要中斷無窮迴圈,則可以在迴圈中加 ifif敘述,再配合敘述,再配合 5.5.15.5.1 節的節的 breakbreak 敘述中斷敘述中斷迴圈。 迴圈。

Page 36: 5 重複迴圈 5.1 增減運算符號 5-2 5.1 增減運算符號 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.2 減量運算符號 -- 5-4 5.1.2 減量運算符號

5.4.1 5.4.1 無窮無窮 whilewhile 範例範例

while (true)while (true) //// 條件永遠成立條件永遠成立 (true)(true){{

cout << "forever";cout << "forever";}}

Page 37: 5 重複迴圈 5.1 增減運算符號 5-2 5.1 增減運算符號 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.2 減量運算符號 -- 5-4 5.1.2 減量運算符號

5.4.2 5.4.2 無窮無窮 do-whiledo-while 範例範例

dodo{{

cout << "forever";cout << "forever";} while (true); } while (true); //// 條件永遠成立條件永遠成立(true)(true)

Page 38: 5 重複迴圈 5.1 增減運算符號 5-2 5.1 增減運算符號 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.2 減量運算符號 -- 5-4 5.1.2 減量運算符號

5.4.3 5.4.3 無窮無窮 forfor 範例範例

for ( ; ; )for ( ; ; ) //// 無起始也無終止無起始也無終止{{

cout << "forever";cout << "forever";}}

Page 39: 5 重複迴圈 5.1 增減運算符號 5-2 5.1 增減運算符號 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.2 減量運算符號 -- 5-4 5.1.2 減量運算符號

5.5 5.5 中斷與繼續中斷與繼續 中斷(中斷( breakbreak ))敘述用來提前結束迴圈的敘述用來提前結束迴圈的

執行。 執行。 繼續(繼續( continuecontinue ))敘述則用來跳過某些敘述則用來跳過某些

敘述而繼續下一個計數。 敘述而繼續下一個計數。

Page 40: 5 重複迴圈 5.1 增減運算符號 5-2 5.1 增減運算符號 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.2 減量運算符號 -- 5-4 5.1.2 減量運算符號

5.5.1 break5.5.1 break 敘述敘述 break;break;

範例範例for (count = 0; count <= stringlength; countfor (count = 0; count <= stringlength; count++)++){{

if (string[count] == letter)if (string[count] == letter) //// 若條件成若條件成立立

break;break; //// 中斷中斷 forfor 迴圈迴圈}}

Page 41: 5 重複迴圈 5.1 增減運算符號 5-2 5.1 增減運算符號 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.2 減量運算符號 -- 5-4 5.1.2 減量運算符號

5.5.2 continue5.5.2 continue 敘述敘述 continue;continue;

範例範例for (count = 1; count <= maxnum; count++)for (count = 1; count <= maxnum; count++){{

if (count % 3 != 0)if (count % 3 != 0) //// 若不是若不是 33 的倍數的倍數continue;continue; //// 返回迴圈起點返回迴圈起點

cout << count;cout << count; //// 若非若非 33 的倍數則不顯示的倍數則不顯示}}

Page 42: 5 重複迴圈 5.1 增減運算符號 5-2 5.1 增減運算符號 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.2 減量運算符號 -- 5-4 5.1.2 減量運算符號

Ex 9Ex 9

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

2*1= 22*2= 42*3= 62*4= 82*5=102*6=12 . . .9*8=729*9=81

Page 43: 5 重複迴圈 5.1 增減運算符號 5-2 5.1 增減運算符號 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.2 減量運算符號 -- 5-4 5.1.2 減量運算符號

Ex 9Ex 9

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

Page 44: 5 重複迴圈 5.1 增減運算符號 5-2 5.1 增減運算符號 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.1 增量運算符號 ++ 5-2 5.1.2 減量運算符號 -- 5-4 5.1.2 減量運算符號

Homework 4Homework 4

課本第課本第 5-425-42 頁第頁第 1919 題題 寫一寫一 C++C++ 程式,以亂數擲程式,以亂數擲 1000010000 次骰子然次骰子然

後計算並列出出現後計算並列出出現 11 、、 2 2 、 、 3 3 、 、 4 4 、 、 5 5 、、 66 點的次數。點的次數。