Presentation is loading. Please wait.

Presentation is loading. Please wait.

計數式重複敘述 for 迴圈 P37 01010 10101 01010 10101 01010 10101.

Similar presentations


Presentation on theme: "計數式重複敘述 for 迴圈 P37 01010 10101 01010 10101 01010 10101."— Presentation transcript:

1 計數式重複敘述 for 迴圈 P37 01010 10101 01010 10101 01010 10101

2 結構化程式設計—流程控制結構 循序結構 選擇結構 重覆結構

3 重複結構 依某些條件決定是否重複執行某些敘述 for 巢狀 for while do...while

4 重複結構 依某些條件決定是否重複執行某些敘述 for 巢狀 for while do...while

5 計數式重複敘述的使用時機 當某段程式需要被重複執行 程式中有些運算大都不變,只有運算式中的一些變數的值作改變(只有程式中的某一個或幾個值會依一定的規律來增、減)

6 計數式重複敘述 計算21,22,23,24,25,26,27,28,29 只有乘數的數字做改變,每次都增加1 設計一個運算式, 2  i 每次計算完這個運算式,i都會加1 i的起始值是1,最後結束時的值是9

7 流程圖 設定測試條件變數初始值 迴圈結束條件判斷 重複執行程式區塊 測試條件變數增減 int i= 0; i = 1 false
true c=2*i; i++; 測試條件變數增減 sum = 1;

8 for迴圈 語法 int i; for (初值運算式;測試運算式;增減量運算) { 迴圈內指令區塊; } … 起始值設定 i=1
判斷迴圈結束的條件 i<=9 遞增(減)變數 i = i + 1 (簡寫i++ ) false:結束迴圈 true:執行迴圈內指令 int i; for (初值運算式;測試運算式;增減量運算) { 迴圈內指令區塊; } print 2*i

9 int sum,i =0; sum = 0 ; i=i+2 ; sum=sum+I; 計算2+4+6+8+…+100
50次 2 20 ? 6 12 8 6 4 2 ? i=i+2 ; sum=sum+I; 1A00 sum i 1A02 i=i+2 ; sum+=i; i=i+2 ; sum+=i; i=i+2 ; sum+=i; for (i=2 ; i<=100; i+=2) sum+=i; i=i+2 ; sum+=i;

10 判斷迴圈範圍 i-- i=i-1 增減量加1=>「i=i+1」可以用「i++」取代
for( i = 1 ; i < ; i++ ) printf("%d\n", i); return 0; 增減量加1=>「i=i+1」可以用「i++」取代 那減1呢?__________可以用_______取代。 迴圈的大括號不可省略,除非迴圈內只有一行指令 start end 迴圈外部第一行 i-- i=i-1

11 EX1:印出1~50的所有奇數 #include <stdio.h> int main( ) { int i; for( i = ; i < ; ) printf("%d\n", i); return 0; } 1 3 i<=49 i<51 49 1 50 i=i+2 5 49 3 ? 1 51 i

12 終止條件 i>=0 , i ? 終止條件 i>0 , i ?
EX2:孫悟空在天庭閒逛,到蟠桃園看到蟠桃,忍不住就偷吃了蟠桃園中20顆蟠桃,第2天到蟠桃園中吃了18顆,此後孫悟空每天都到蟠桃園吃比前一天少兩顆的蟠桃,最後蟠桃園的蟠桃被吃光了,孫悟空總共吃了幾顆蟠桃? #include <stdio.h> #include <stdlib.h> int main() { int peach=0,i;   //宣告蟠桃變數為peach //利用for迴圈算出第1天、第2天、第3天……直到蟠桃被吃完的peach數量 for( ; ; ) peach=peach+i; } printf("%d\n",peach); system("pause"); return 0; i=20 i>=0 i>0 i=i-2 20 20+18+…+2+0 38 20+18+…+2 54 -2 18 20 ? 16 終止條件 i>=0 , i ? peach i 終止條件 i>0 , i ?

13 注意事項-1 無窮迴圈 使用變數前宣告 for (int i = 1 ; ; i++ )
初值設定、測試運算式、增減量運算,任何一個都可各自省略,但分號不可省略 三個運算式皆省略,則測試結果永遠是真,為無窮迴圈

14 EX3:輸入一整數值,計算出1+…+該整數值之和(含正/負整數)
如果整數值為負數則由1+0+(-1)…+(該數);如果整數值為正數則由1+2+3…+(該數) #include<stdio.h> #include<stdlib.h> int main() { int i,num,sum=0; scanf("%d",&num);

15 if (num >=1) { for( ) sum=sum+i; } else for( ) printf("1+
if (num >=1) { for( ) sum=sum+i; } else for( ) printf("1+...+(%d)=%d\n",num,sum); system("pause"); return 0; i=1; i<=num ;i++ i=1; i>=num ;i--

16 注意事項-2 在「初值運算式」,可初始化0個或多個變數 在「測試運算式」,可以有0個或是多個判斷式 之間以 , 隔開
for ( i = 0 ,j = 10 ; 測試運算式 ; 增減量運算 ) 在「測試運算式」,可以有0個或是多個判斷式 for ( 初值運算式 ; i > 10 , j< 20 ;增減量運算) 在增減量運算,可以增減0個或是多個變數的值 for (初值運算式 ; 測試運算式 ; i++ , j-- ) 之間以 , 隔開 之間以 , 隔開 之間以 , 隔開


Download ppt "計數式重複敘述 for 迴圈 P37 01010 10101 01010 10101 01010 10101."

Similar presentations


Ads by Google