C言語(yǔ)課件-第5章 循環(huán)結(jié)構(gòu)程序設(shè)計(jì)

上傳人:san****019 文檔編號(hào):22319290 上傳時(shí)間:2021-05-24 格式:PPT 頁(yè)數(shù):49 大?。?.52MB
收藏 版權(quán)申訴 舉報(bào) 下載
C言語(yǔ)課件-第5章 循環(huán)結(jié)構(gòu)程序設(shè)計(jì)_第1頁(yè)
第1頁(yè) / 共49頁(yè)
C言語(yǔ)課件-第5章 循環(huán)結(jié)構(gòu)程序設(shè)計(jì)_第2頁(yè)
第2頁(yè) / 共49頁(yè)
C言語(yǔ)課件-第5章 循環(huán)結(jié)構(gòu)程序設(shè)計(jì)_第3頁(yè)
第3頁(yè) / 共49頁(yè)

下載文檔到電腦,查找使用更方便

9.9 積分

下載資源

還剩頁(yè)未讀,繼續(xù)閱讀

資源描述:

《C言語(yǔ)課件-第5章 循環(huán)結(jié)構(gòu)程序設(shè)計(jì)》由會(huì)員分享,可在線(xiàn)閱讀,更多相關(guān)《C言語(yǔ)課件-第5章 循環(huán)結(jié)構(gòu)程序設(shè)計(jì)(49頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、第 5章 循 環(huán) 結(jié) 構(gòu) 程 序 設(shè) 計(jì) 本 章 要 點(diǎn) 5.1 概 述5.2 goto語(yǔ) 句 以 及 用 goto語(yǔ) 句 構(gòu) 成 循 環(huán)5.3 用 while語(yǔ) 句 實(shí) 現(xiàn) 循 環(huán)5.4 用 do-while語(yǔ) 句 實(shí) 現(xiàn) 循 環(huán)5.5 用 for 語(yǔ) 句 實(shí) 現(xiàn) 循 環(huán) 5.6 循 環(huán) 的 嵌 套5.7 幾 種 循 環(huán) 的 比 較5.8 break語(yǔ) 句 continue和 語(yǔ) 句5.9 程 序 舉 例主 要 內(nèi) 容 5.1 概 述 什 么 是 循 環(huán) ?為 什 么 要 使 用 循 環(huán) ?1001ny n問(wèn) 題 1:?jiǎn)?題 2: 在 許 多 問(wèn) 題 中 需 要 用 到 循 環(huán) 控 制 。

2、循 環(huán) 結(jié) 構(gòu) 是 結(jié)構(gòu) 化 程 序 設(shè) 計(jì) 的 基 本 結(jié) 構(gòu) 之 一 , 它 和 順 序 結(jié) 構(gòu) 、 選擇 結(jié) 構(gòu) 共 同 作 為 各 種 復(fù) 雜 程 序 的 基 本 構(gòu) 造 單 元 。 5.2 goto語(yǔ) 句 及 用 goto語(yǔ) 句 構(gòu) 成 循 環(huán) goto語(yǔ) 句 為 無(wú) 條 件 轉(zhuǎn) 向 語(yǔ) 句 , 它 的 一 般 形 式 為 goto 語(yǔ) 句 標(biāo) 號(hào) ; 語(yǔ) 句 標(biāo) 號(hào) 用 標(biāo) 識(shí) 符 表 示 , 它 的 定 名 規(guī) 則 與 變 量 名 相同 , 即 由 字 母 、 數(shù) 字 和 下 劃 線(xiàn) 組 成 , 其 第 一 個(gè) 字 符必 須 為 字 母 或 下 劃 線(xiàn) 。 例 如 : goto

3、label_1; 合 法 ; goto 123; 不 合 法 . 5.2 goto語(yǔ) 句 及 用 goto語(yǔ) 句 構(gòu) 成 循 環(huán) 結(jié) 構(gòu) 化 程 序 設(shè) 計(jì) 方 法 主 張 限 制 使 用 goto語(yǔ) 句 , 因 為濫 用 goto語(yǔ) 句 將 使 程 序 流 程 無(wú) 規(guī) 律 、 可 讀 性 差 。一 般 來(lái) 說(shuō) , 可 以 有 兩 種 用 途 :( 1) 與 if語(yǔ) 句 一 起 構(gòu) 成 循 環(huán) 結(jié) 構(gòu) ;( 2) 從 循 環(huán) 體 中 跳 轉(zhuǎn) 到 循 環(huán) 體 外 。 但 是 這 種 用 法 不 符 合 結(jié) 構(gòu) 化 原 則 , 一 般 不 宜 采 用 ,只 有 在 不 得 已 時(shí) (例 如 能 大

4、 大 提 高 效 率 )才 使 用 。 5.2 goto語(yǔ) 句 及 用 goto語(yǔ) 句 構(gòu) 成 循 環(huán)例 5.1 用 if語(yǔ) 句 和 goto語(yǔ) 句 構(gòu) 成 循 環(huán) , 求 1到 100的 和void main( ) int i, sum=0; i=1; loop:if(i=100) sum=sum+i; i+; goto loop; printf(%dn”,sum); 1001n n 說(shuō) 明 : 這 里 用 的 是 “ 當(dāng) 型 ” 循環(huán)結(jié) 構(gòu) , 當(dāng) 滿(mǎn) 足 “ i=100” 時(shí) 執(zhí)行 花 括 弧 內(nèi) 的 循 環(huán) 體 。 運(yùn) 行 結(jié) 果 : 5050 while語(yǔ) 句 用 來(lái) 實(shí) 現(xiàn) “ 當(dāng)

5、 型 ” 循 環(huán) 結(jié) 構(gòu) 。一 般 形 式 : while (表 達(dá) 式 ) 語(yǔ) 句 當(dāng) 表 達(dá) 式 為 非 0值 ( 即 為 真 ) 時(shí) , 執(zhí) 行 while語(yǔ) 句中 的 內(nèi) 嵌 語(yǔ) 句 。 其 特 點(diǎn) 是 : 先 判 斷 表 達(dá) 式 , 后 執(zhí) 行 語(yǔ) 句 。5.3 用 while語(yǔ) 句 實(shí) 現(xiàn) 循 環(huán) 5.3 用 while語(yǔ) 句 實(shí) 現(xiàn) 循 環(huán)例 5 .2 求 1 到 1 0 0 的 和#include void main() int i,sum=0 ; i=1 ; while (i=1 0 0 ) sum=sum+i; i+; printf(“%dn”,sum); 說(shuō) 明 :( 1

6、) 循 環(huán) 體 如 果 包 含 一 個(gè) 以 上的 語(yǔ) 句 , 應(yīng) 該 用 花 括 弧 括 起來(lái) , 以 復(fù) 合 語(yǔ) 句 形 式 出 現(xiàn) ;( 2) 在 循 環(huán) 體 中 應(yīng) 有 使 循 環(huán) 趨向 于 結(jié) 束 的 語(yǔ) 句 。 運(yùn) 行 結(jié) 果 : 5050 5.3 用 while語(yǔ) 句 實(shí) 現(xiàn) 循 環(huán)注 意 :( 1) 循 環(huán) 體 如 果 包 含 一 個(gè) 以 上 的 語(yǔ) 句 , 應(yīng) 該 用 花 括弧 括 起 來(lái) , 以 復(fù) 合 語(yǔ) 句 形 式 出 現(xiàn) 。 ( 2) 在 循 環(huán) 體 中 應(yīng) 有 使 循 環(huán) 趨 向 于 結(jié) 束 的 語(yǔ) 句 。 如果 無(wú) 此 語(yǔ) 句 , 則 i的 值 始 終 不 改 變

7、, 循 環(huán) 永 不 結(jié)束 。 死 循 環(huán) 5.4 用 do-while語(yǔ) 句 實(shí) 現(xiàn) 循 環(huán)do-while語(yǔ) 句 的 特 點(diǎn) :先 執(zhí) 行 循 環(huán) 體 , 然 后 判 斷 循 環(huán)條 件 是 否 成 立 。一 般 形 式 : do 循 環(huán) 體 語(yǔ) 句 while (表 達(dá) 式 );執(zhí) 行 過(guò) 程 : 先 執(zhí) 行 一 次 指 定 的 循 環(huán) 體 語(yǔ) 句 , 然 后 判 別 表 達(dá)式 , 當(dāng) 表 達(dá) 式 的 值 為 非 零 (“ 真 ” ) 時(shí) , 返 回 重新 執(zhí) 行 循 環(huán) 體 語(yǔ) 句 , 如 此 反 復(fù) , 直 到 表 達(dá) 式 的值 等 于 0( 即 假 ) 為 止 , 此 時(shí) 循 環(huán) 結(jié)

8、束 。 5.4 用 do-while語(yǔ) 句 實(shí) 現(xiàn) 循 環(huán)例 5.3 求 1到 100的 和#include void main() int i,sum=0; i=1; do sum=sum+i; i+; while(i=100); printf(%dn”,sum); 運(yùn) 行 結(jié) 果 : 5050 1001n n 5.4 用 do-while語(yǔ) 句 實(shí) 現(xiàn) 循 環(huán)while語(yǔ) 句 和 用 do-while語(yǔ) 句 的 比 較 :在 一 般 情 況 下 , 用 while語(yǔ) 句 和 用 do-while語(yǔ) 句 處 理 同一 問(wèn) 題 時(shí) , 若 二 者 的 循 環(huán) 體 部 分 是 一 樣 的 , 它

9、 們 的 結(jié)果 也 一 樣 。 但 是 如 果 while后 面 的 表 達(dá) 式 一 開(kāi) 始 就 為 假( 0值 ) 時(shí) , 兩 種 循 環(huán) 的 結(jié) 果 是 不 同 的 。 while語(yǔ) 句 執(zhí)行 0次 循 環(huán) 體 , do-while語(yǔ) 句 至 少 執(zhí) 行 一 次 循 環(huán) 體 。 5.4 用 do-while語(yǔ) 句 實(shí) 現(xiàn) 循 環(huán)例 5.4 while和 do-while循 環(huán) 的 比 較 ( 1) ( 2)#include #include void main( ) void main( ) int sum=0,i; int sum=0,i; scanf(“%d”, scanf(”%d”,

10、 while (i=10) do sum=sum+I; sum=sum+i; i+; i+; while (i=10); printf(“sum=%dn”, printf(“sum=%dn”, sum); sum ); 運(yùn) 行 結(jié) 果 :1 sum=55 再 運(yùn) 行 一 次 : 11 sum=0 運(yùn) 行 結(jié) 果 :1 sum=55 再 運(yùn) 行 一 次 : 11 sum=11說(shuō) 明 : 當(dāng) while后 面 的 表 達(dá) 式 的 第一 次 的 值 為 “ 真 ” 時(shí) , 兩 種 循 環(huán) 得到 的 結(jié) 果 相 同 。 否 則 , 二 者 結(jié) 果 不相 同 。 5.5 用 for 語(yǔ) 句 實(shí) 現(xiàn) 循

11、環(huán) C語(yǔ) 言 中 的 for語(yǔ) 句 使 用 最 為 靈 活 , 不 僅 可 以 用 于 循環(huán) 次 數(shù) 已 經(jīng) 確 定 的 情 況 , 而 且 可 以 用 于 循 環(huán) 次 數(shù) 不確 定 而 只 給 出 循 環(huán) 結(jié) 束 條 件 的 情 況 , 它 完 全 可 以 代替 while語(yǔ) 句 。 一 般 形 式 : for(表 達(dá) 式 1;表 達(dá) 式 2;表 達(dá) 式 3) 語(yǔ) 句 5.5 用 for 語(yǔ) 句 實(shí) 現(xiàn) 循 環(huán)for語(yǔ) 句 的 執(zhí) 行 過(guò) 程 :( 1) 先 求 解 表 達(dá) 式 1。( 2) 求 解 表 達(dá) 式 2, 若 其 值 為 真 ( 值 為 非 0) , 則 執(zhí) 行 for語(yǔ) 句 中

12、 指 定 的 內(nèi) 嵌 語(yǔ) 句 , 然 后 執(zhí) 行 下 面 第 ( 3) 步 。 若 為 假 ( 值 為 0) , 則 結(jié) 束 循 環(huán) , 轉(zhuǎn) 到 第 ( 5) 步 。( 3) 求 解 表 達(dá) 式 3。( 4) 轉(zhuǎn) 回 上 面 第 ( 2) 步 驟 繼 續(xù) 執(zhí) 行 。( 5) 循 環(huán) 結(jié) 束 , 執(zhí) 行 for語(yǔ) 句 下 面 的 一 個(gè) 語(yǔ) 句 。 5.5 用 for 語(yǔ) 句 實(shí) 現(xiàn) 循 環(huán)表 達(dá) 式 2?執(zhí) 行 語(yǔ) 句成 立 不 成 立執(zhí) 行 for循 環(huán) 之 后 的 語(yǔ)句執(zhí) 行 表 達(dá) 式 3執(zhí) 行 表 達(dá) 式 1 循 環(huán) 初 始 條 件循 環(huán) 控 制 條 件循 環(huán) 體 for語(yǔ) 句 等 價(jià)

13、 于 下 列 語(yǔ) 句 :表 達(dá) 式 1 ;while (表 達(dá) 式 2 ) 語(yǔ) 句 ; 表 達(dá) 式 3 ; 5.5 用 for 語(yǔ) 句 實(shí) 現(xiàn) 循 環(huán)for語(yǔ) 句 最 簡(jiǎn) 單 的 應(yīng) 用 形 式 也 就 是 最 易 理 解 的 形 式 如 下 : for(循 環(huán) 變 量 賦 初 值 ;循 環(huán) 條 件 ;循 環(huán) 變 量 增 值 ) 例 如 : for(i=1;i=100;i+) sum=sum+i;它 相 當(dāng) 于 以 下 語(yǔ) 句 : i=1; while(i=100) sum=sum+i;i+; 顯 然 , 用 for語(yǔ) 句 簡(jiǎn) 單 、方 便 。 5.5 用 for 語(yǔ) 句 實(shí) 現(xiàn) 循 環(huán)說(shuō) 明

14、 :( 1) for語(yǔ) 句 的 一 般 形 式 中 的 “ 表 達(dá) 式 1” 可 以 省 略 ,此 時(shí) 應(yīng) 在 for語(yǔ) 句 之 前 給 循 環(huán) 變 量 賦 初 值 。 注 意 省略 表 達(dá) 式 1時(shí) , 其 后 的 分 號(hào) 不 能 省 略 。 如 for(;i=1 0 0 ;i+) sum=sum+i; 執(zhí) 行 時(shí) , 跳 過(guò) “ 求 解 表 達(dá) 式 1” 這 一 步 , 其 他 不 變 。 5.5 用 for 語(yǔ) 句 實(shí) 現(xiàn) 循 環(huán)說(shuō) 明 :( 2) 如 果 表 達(dá) 式 2省 略 , 即 不 判 斷 循 環(huán) 條 件 , 循 環(huán) 無(wú)終 止 地 進(jìn) 行 下 去 。 也 就 是 認(rèn) 為 表 達(dá)

15、式 2始 終 為 真 。例 如 : for(i=1 ; ;i+) sum=sum+i; 表 達(dá) 式 1是 一 個(gè) 賦 值 表 達(dá) 式 , 表 達(dá) 式 2空 缺 。 它 相 當(dāng) 于 : i=1 ; while(1 ) sum=sum+1 ;i+; 5.5 用 for 語(yǔ) 句 實(shí) 現(xiàn) 循 環(huán)說(shuō) 明 :( 3) 表 達(dá) 式 3也 可 以 省 略 , 但 此 時(shí) 程 序 設(shè) 計(jì) 者 應(yīng) 另 外設(shè) 法 保 證 循 環(huán) 能 正 常 結(jié) 束 。 如 : for(i=1 ;i=1 0 0 ;) sum=sum+i; i+; 在 上 面 的 for語(yǔ) 句 中 只 有 表 達(dá) 式 1和 表 達(dá) 式 2, 而 沒(méi)有

16、 表 達(dá) 式 3。 i+的 操 作 不 放 在 for語(yǔ) 句 的 表 達(dá) 式 3的位 置 處 , 而 作 為 循 環(huán) 體 的 一 部 分 , 效 果 是 一 樣 的 ,都 能 使 循 環(huán) 正 常 結(jié) 束 。 5.5 用 for 語(yǔ) 句 實(shí) 現(xiàn) 循 環(huán)說(shuō) 明 :( 4) 可 以 省 略 表 達(dá) 式 1和 表 達(dá) 式 3, 只 有 表 達(dá) 式 2, 即只 給 循 環(huán) 條 件 。 如 : for(;i=1 0 0 ;) while(i=1 0 0 ) sum=sum+i; 相 當(dāng) 于 sum=sum+i; i+; i+; 在 這 種 情 況 下 , 完 全 等 同 于 while語(yǔ) 句 。 可 見(jiàn)

17、for語(yǔ) 句比 while語(yǔ) 句 功 能 強(qiáng) , 除 了 可 以 給 出 循 環(huán) 條 件 外 , 還可 以 賦 初 值 , 使 循 環(huán) 變 量 自 動(dòng) 增 值 等 。 5.5 用 for 語(yǔ) 句 實(shí) 現(xiàn) 循 環(huán)說(shuō) 明 :( 5) 3個(gè) 表 達(dá) 式 都 可 省 略 , 如 : for(; ;) 語(yǔ) 句 相 當(dāng) 于 while(1) 語(yǔ) 句即 不 設(shè) 初 值 , 不 判 斷 條 件 ( 認(rèn) 為 表 達(dá) 式 2為 真 值 ) ,循 環(huán) 變 量 不 增 值 。 無(wú) 終 止 地 執(zhí) 行 循 環(huán) 體 。 5.5 用 for 語(yǔ) 句 實(shí) 現(xiàn) 循 環(huán)說(shuō) 明 :( 6) 表 達(dá) 式 1可 以 是 設(shè) 置 循 環(huán)

18、 變 量 初 值 的 賦 值 表 達(dá) 式 ,也 可 以 是 與 循 環(huán) 變 量 無(wú) 關(guān) 的 其 他 表 達(dá) 式 。 如 : for (sum=0 ;i=1 0 0 ;i+) sum=sum+i;表 達(dá) 式 3也 可 以 是 與 循 環(huán) 控 制 無(wú) 關(guān) 的 任 意 表 達(dá) 式 。 5.5 用 for 語(yǔ) 句 實(shí) 現(xiàn) 循 環(huán)說(shuō) 明 :表 達(dá) 式 1和 表 達(dá) 式 3可 以 是 一 個(gè) 簡(jiǎn) 單 的 表 達(dá) 式 , 也 可 以是 逗 號(hào) 表 達(dá) 式 , 即 包 含 一 個(gè) 以 上 的 簡(jiǎn) 單 表 達(dá) 式 , 中 間用 逗 號(hào) 間 隔 。 如 : for(sum=0 ,i=1 ;i=1 0 0 ;i+)

19、 sum=sum+i;或 for(i=0 ,j=1 0 0 ;i=j;i+,j-) k=i+j;表 達(dá) 式 1和 表 達(dá) 式 3都 是 逗 號(hào) 表 達(dá) 式 , 各 包 含 兩 個(gè) 賦 值表 達(dá) 式 , 即 同 時(shí) 設(shè) 兩 個(gè) 初 值 , 使 兩 個(gè) 變 量 增 值 。 5.5 用 for 語(yǔ) 句 實(shí) 現(xiàn) 循 環(huán)說(shuō) 明 :在 逗 號(hào) 表 達(dá) 式 內(nèi) 按 自 左 至 右 順 序 求 解 , 整 個(gè) 逗 號(hào) 表 達(dá)式 的 值 為 其 中 最 右 邊 的 表 達(dá) 式 的 值 。 如 : for(i=1 ;i=1 0 0 ;i+,i+) sum=sum+i;相 當(dāng) 于 for(i=1 ;i=1 0 0

20、;i=i+2 ) sum=sum+i; 5.5 用 for 語(yǔ) 句 實(shí) 現(xiàn) 循 環(huán)說(shuō) 明 :( 7) 表 達(dá) 式 一 般 是 關(guān) 系 表 達(dá) 式 (如 i=100)或 邏 輯 表達(dá) 式 ( 如 ab (c=getchar()!= n;i+=c); 在 表 達(dá) 式 2中 先 從 終 端 接 收 一 個(gè) 字 符 賦 給 c, 然 后 判斷 此 賦 值 表 達(dá) 式 的 值 是 否 不 等 于 n ( 換 行 符 ) ,如 果 不 等 于 n , 就 執(zhí) 行 循 環(huán) 體 。注 意 : 此 for語(yǔ) 句 的 循 環(huán) 體 為 空 語(yǔ) 句 , 把 本 來(lái) 要 在 循 環(huán) 體內(nèi) 處 理 的 內(nèi) 容 放 在 表

21、 達(dá) 式 3中 , 作 用 是 一 樣 的 。 可見(jiàn) for語(yǔ) 句 功 能 強(qiáng) , 可 以 在 表 達(dá) 式 中 完 成 本 來(lái) 應(yīng) 在循 環(huán) 體 內(nèi) 完 成 的 操 作 。 5.5 用 for 語(yǔ) 句 實(shí) 現(xiàn) 循 環(huán)說(shuō) 明 : for( ;(c=getchar()!= n ;) printf( %c , c); for語(yǔ) 句 中 只 有 表 達(dá) 式 2, 而 無(wú) 表 達(dá) 式 1和 表 達(dá) 式 3。 其 作 用 是 每 讀 入 一 個(gè) 字 符 后 立 即 輸 出 該 字 符 , 直 到輸 入 一 個(gè) “ 換 行 ” 為 止 。 請(qǐng) 注 意 , 從 終 端 鍵 盤(pán) 向 計(jì)算 機(jī) 輸 入 時(shí) , 是

22、 在 按 Enter鍵 以 后 才 將 一 批 數(shù) 據(jù) 一起 送 到 內(nèi) 存 緩 沖 區(qū) 中 去 的 。運(yùn) 行 情 況 :Computer (輸 入 )Computer (輸 出 )而 不 是Ccoommppuutteerr 5.5 用 for 語(yǔ) 句 實(shí) 現(xiàn) 循 環(huán)注 意 : C語(yǔ) 言 中 的 for語(yǔ) 句 比 其 他 語(yǔ) 言 ( 如 BASIC,PASCAL) 中 的 FOR語(yǔ) 句 功 能 強(qiáng) 得 多 。 可 以 把 循 環(huán) 體 和一 些 與 循 環(huán) 控 制 無(wú) 關(guān) 的 操 作 也 作 為 表 達(dá) 式 1或 表 達(dá) 式3出 現(xiàn) , 這 樣 程 序 可 以 短 小 簡(jiǎn) 潔 。 但 過(guò) 分 地

23、 利 用 這 一特 點(diǎn) 會(huì) 使 for語(yǔ) 句 顯 得 雜 亂 , 可 讀 性 降 低 , 最 好 不 要把 與 循 環(huán) 控 制 無(wú) 關(guān) 的 內(nèi) 容 放 到 for語(yǔ) 句 中 。 5.6 循 環(huán) 的 嵌 套 一 個(gè) 循 環(huán) 體 內(nèi) 又 包 含 另 一 個(gè) 完 整 的 循 環(huán) 結(jié) 構(gòu) 稱(chēng) 為 循環(huán) 的 嵌 套 。 內(nèi) 嵌 的 循 環(huán) 中 還 可 以 嵌 套 循 環(huán) , 這 就 是多 層 循 環(huán) 。 三 種 循 環(huán) ( while循 環(huán) 、 do-while循 環(huán) 和 for循 環(huán) )可 以 互 相 嵌 套 。 5.6 循 環(huán) 的 嵌 套 下 面 幾 種 都 是 合 法 的 形 式 : ( 1 )

24、( 2 ) ( 3 ) while( ) do for(;) while( ) do for(;) while( ); while( ); 5.6 循 環(huán) 的 嵌 套 ( 4 ) ( 5 ) ( 6 ) while( ) for(;) do do while( ) for(;) while( ) while( ) 5.7 幾 種 循 環(huán) 的 比 較( 1) 四 種 循 環(huán) 都 可 以 用 來(lái) 處 理 同 一 問(wèn) 題 , 一 般 情 況 下它 們 可 以 互 相 代 替 。 但 一 般 不 提 倡 用 goto型 循 環(huán) 。( 2) 在 while循 環(huán) 和 do-while循 環(huán) 中 , 只

25、在 while后 面的 括 號(hào) 內(nèi) 指 定 循 環(huán) 條 件 , 因 此 為 了 使 循 環(huán) 能 正 常 結(jié)束 , 應(yīng) 在 循 環(huán) 體 中 包 含 使 循 環(huán) 趨 于 結(jié) 束 的 語(yǔ) 句 (如i+, 或 i=i+1等 )。 for循 環(huán) 可 以 在 表 達(dá) 式 3中 包 含 使 循 環(huán) 趨 于 結(jié) 束 的 操作 , 甚 至 可 以 將 循 環(huán) 體 中 的 操 作 全 部 放 到 表 達(dá) 式 3中 。因 此 for語(yǔ) 句 的 功 能 更 強(qiáng) , 凡 用 while循 環(huán) 能 完 成 的 ,用 for循 環(huán) 都 能 實(shí) 現(xiàn) 。 5.7 幾 種 循 環(huán) 的 比 較( 3) 用 while和 do-wh

26、ile循 環(huán) 時(shí) , 循 環(huán) 變 量 初 始 化 的操 作 應(yīng) 在 while和 do-while語(yǔ) 句 之 前 完 成 。 而 for語(yǔ)句 可 以 在 表 達(dá) 式 1中 實(shí) 現(xiàn) 循 環(huán) 變 量 的 初 始 化 。( 4) while循 環(huán) 、 do-while循 環(huán) 和 for循 環(huán) , 可 以 用break語(yǔ) 句 跳 出 循 環(huán) , 用 continue語(yǔ) 句 結(jié) 束 本 次 循 環(huán)( break語(yǔ) 句 和 continue語(yǔ) 句 見(jiàn) 下 節(jié) ) 。 而 對(duì) 用 goto語(yǔ) 句 和 if語(yǔ) 句 構(gòu) 成 的 循 環(huán) , 不 能 用 break語(yǔ) 句 和continue語(yǔ) 句 進(jìn) 行 控 制

27、。 5.8 break語(yǔ) 句 和 continue語(yǔ) 句 break語(yǔ) 句 break語(yǔ) 句 可 以 用 來(lái) 從 循 環(huán) 體 內(nèi) 跳 出 循 環(huán) 體 , 即 提 前結(jié) 束 循 環(huán) , 接 著 執(zhí) 行 循 環(huán) 下 面 的 語(yǔ) 句 一 般 形 式 : break;注 意 : break語(yǔ) 句 不 能 用 于 循 環(huán) 語(yǔ) 句 和 switch語(yǔ) 句 之 外 的 任何 其 他 語(yǔ) 句 中 。 5.8 break語(yǔ) 句 和 continue語(yǔ) 句 例 :float pi=3 .1 4 1 5 9 ;for(r=1 ;r1 0 0 ) break; printf(r=%f,area=%fn, r,area

28、); 程 序 的 作 用 是 計(jì) 算 r=1到 r=10時(shí) 的 圓 面 積 , 直 到面 積 area大 于 100為 止 。 從 上 面 的 for循 環(huán) 可 以看 到 : 當(dāng) area100時(shí) , 執(zhí) 行 break語(yǔ) 句 , 提 前 結(jié)束 循 環(huán) , 即 不 再 繼 續(xù) 執(zhí) 行 其 余 的 幾 次 循 環(huán) 。 5.8 break語(yǔ) 句 和 continue語(yǔ) 句 continue語(yǔ) 句 作 用 為 結(jié) 束 本 次 循 環(huán) , 即 跳 過(guò) 循 環(huán) 體 中 下 面 尚 未 執(zhí)行 的 語(yǔ) 句 , 接 著 進(jìn) 行 下 一 次 是 否 執(zhí) 行 循 環(huán) 的 判 定 .一 般 形 式 : contin

29、ue; 5.8 break語(yǔ) 句 和 continue語(yǔ) 句 continue語(yǔ) 句 和 break語(yǔ) 句 的 區(qū) 別 continue語(yǔ) 句 只 結(jié) 束 本 次 循 環(huán) , 而 不 是 終 止 整 個(gè) 循環(huán) 的 執(zhí) 行 。 while(表 達(dá) 式 1) for if(表 達(dá) 式 2) continue; 5.8 break語(yǔ) 句 和 continue語(yǔ) 句 continue語(yǔ) 句 和 break語(yǔ) 句 的 區(qū) 別 break語(yǔ) 句 則 是 結(jié) 束 整 個(gè) 循 環(huán) 過(guò) 程 , 不 再 判 斷 執(zhí) 行 循環(huán) 的 條 件 是 否 成 立 。while(表 達(dá) 式 1) for if(表 達(dá) 式 2

30、) break; 5.8 break語(yǔ) 句 和 continue語(yǔ) 句 例 5.5 把 100 200之 間 的 不 能 被 3整 除 的 數(shù) 輸 出 。 #include void main() int n; for(n=100;n=200;n+) if (n%3=0) continue; printf(%d”,n); 說(shuō) 明 : 當(dāng) n能 被 3整 除 時(shí) , 執(zhí)行 continue語(yǔ) 句 , 結(jié) 束 本 次循 環(huán) ( 即 跳 過(guò) printf函 數(shù) 語(yǔ)句 ) , 只 有 n不 能 被 3整 除 時(shí)才 執(zhí) 行 printf函 數(shù) 。 5.9 程 序 舉 例例 5.6 用 /41-1/3+1

31、/5-1/7+公 式 求 的 近 似 值 ,直 到 某 一 項(xiàng) 的 絕 對(duì) 值 小 于 0.000001為 止 。例 5.6 求 pi的 近 似 值 #include #includevoid main() int s; float n,t,pi; t=1; pi=0; n=1.0; s=1; while(fabs(t)1e-6) pi=pi+t; n=n+2; s=-s; t=s/n; pi=pi*4; printf(“pi=%10.6fn”,pi); 運(yùn) 行 結(jié) 果 : pi= 3.141594 5.9 程 序 舉 例例 5.7 求 Fibonacci數(shù) 列 前 40個(gè) 數(shù) 。 這 個(gè) 數(shù)

32、 列 有 如 下特 點(diǎn) : 第 1, 2兩 個(gè) 數(shù) 為 1, 1。 從 第 3個(gè) 數(shù) 開(kāi) 始 , 該數(shù) 是 其 前 面 兩 個(gè) 數(shù) 之 和 。 即 : F(1)=1 (n=1) F(2)=1 (n=2) F(n)=F(n-1)+F(n-2) (n3) 5.9 程 序 舉 例例 5.7 求 Fibonacci數(shù) 列 前 40個(gè) 數(shù) 。 #include void main() long int f1, f2; int i; f1=1;f2=1; for(i=1; i=20; i+) printf(“%12ld %12ld”,f1,f2); if(i%2=0) printf(“n”); f1=f1

33、+f2; f2=f2+f1; 運(yùn) 行 結(jié) 果 : 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 10946 17711 28657 46368 75025 121393 196418 317811 514229 832040 1346269 2178309 3524578 57022887 9227465 14930352 24157817 39088169 63245986 102334155 5.9 程 序 舉 例例 5.8 判 斷 m是 否 素 數(shù) 。算 法 思 想 : 讓 m被 2倒 除 , 如 果

34、 m能 被 2 k之 中 任 何 一 個(gè) 整 數(shù) 整除 , 則 提 前 結(jié) 束 循 環(huán) , 此 時(shí) i必 然 小 于 或 等 于 k(即 );如 果 m不 能 被 2 k(即 )之 間 的 任 一 整 數(shù) 整 除 , 則 在 完成 最 后 一 次 循 環(huán) 后 , i還 要 加 1, 因 此 i=k+1, 然 后 才終 止 循 環(huán) 。 在 循 環(huán) 之 后 判 別 i的 值 是 否 大 于 或 等 于k+1, 若 是 , 則 表 明 未 曾 被 2 k之 間 任 一 整 數(shù) 整 除過(guò) , 因 此 輸 出 “ 是 素 數(shù) ” 。 k的 取 值 : k=m-1 或 k=sqrt(m)都 可 以 5.9

35、 程 序 舉 例例 5.8 判 斷 m是 否 素 數(shù) 。 #include #include void main() int m,i,k; scanf(“%d”, k=sqrt(m); for(i=2;ik) printf(“%d is a prime number n”,m); else printf(%d is not a prime number n”,m); 運(yùn) 行 結(jié) 果 : 17 17 is a prime number 5.9 程 序 舉 例例 5.9 求 100 200間 的 全 部 素 數(shù) 。#include # include void main() int m,k,i,n

36、=0; for(m=101;m=200;m=m+2) k=sqrt(m); for (i=2;i=k+1) printf(%d ”,m); n=n+1; if(n%10=0) printf(“n”); printf ( n); 運(yùn) 行 結(jié) 果 : 101 103 107 109 113 127 131 137 139 149151 157 163 167 173 179 181 191 193 197199 5.9 程 序 舉 例例 5.10 譯 密 碼 。 為 使 電 文 保 密 , 往 往 按 一 定 規(guī) 律 將 其轉(zhuǎn) 換 成 密 碼 , 收 報(bào) 人 再 按 約 定 的 規(guī) 律 將 其 譯 回 原 文 。例 如 : 可 以 按 以 下 規(guī) 律 將 電 文 變 成 密 碼 : 將 字 母 A變 成 字 母 E, a變 成 e, 即 變 成 其 后 的 第 4個(gè)字 母 , W變 成 A, X變 成 B, Y變 成 C, Z變 成 D。 5.9 程 序 舉 例例 5.10 輸 入 一 行 字 符 , 要 求 輸 出 其 相 應(yīng) 的 密 碼#include void main() char c; while(c=getchar()!=n) if(c=a printf(“%cn”,c); 運(yùn) 行 結(jié) 果 : China! Glmre!

展開(kāi)閱讀全文
溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話(huà):18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶(hù)上傳的文檔直接被用戶(hù)下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!