程序控制結(jié)構(gòu)及實(shí)例.ppt
《程序控制結(jié)構(gòu)及實(shí)例.ppt》由會員分享,可在線閱讀,更多相關(guān)《程序控制結(jié)構(gòu)及實(shí)例.ppt(17頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
第6講程序控制結(jié)構(gòu)及實(shí)例 循環(huán)語句跳轉(zhuǎn)語句遞歸實(shí)例 目標(biāo) 掌握每種語句的格式及語法結(jié)構(gòu)運(yùn)用循環(huán)語句實(shí)現(xiàn)循環(huán)結(jié)構(gòu)的程序設(shè)計(jì)具備初步描述算法的能力 循環(huán)結(jié)構(gòu) 循環(huán)結(jié)構(gòu)是指在一定的條件下反復(fù)執(zhí)行某段程序 被反復(fù)執(zhí)行的這段程序稱為 循環(huán)體 Java中有三種語句來實(shí)現(xiàn)循環(huán)結(jié)構(gòu) 分別是while do while和for語句 它們的結(jié)構(gòu)分別如下圖所示 while語句 while語句的格式如下 while 條件表達(dá)式 循環(huán)體語句 在循環(huán)剛開始時 會計(jì)算一次 條件表達(dá)式 的值 當(dāng)條件為假時 將不執(zhí)行循環(huán)體 直接跳轉(zhuǎn)到循環(huán)體外 執(zhí)行循環(huán)體外的后續(xù)語句 當(dāng)條件為真時 便執(zhí)行循環(huán)體 每執(zhí)行完一次循環(huán)體 都會重新計(jì)算一次條件表達(dá)式 當(dāng)條件為真時 便繼續(xù)執(zhí)行循環(huán)體 直到條件為假才結(jié)束循環(huán) 例4 4 用while語句計(jì)算10的階乘 cha 0 b awhile a b cha a System out print cha do while語句 do while語句的格式如下 do 循環(huán)體語句 while 條件表達(dá)式 do while循環(huán)與while循環(huán)的不同在于 它先執(zhí)行循環(huán)中的語句 然后再判斷條件是否為真 如果為真則繼續(xù)循環(huán) 如果為假 則終止循環(huán) 因此 do while循環(huán)至少要執(zhí)行一次循環(huán)語句 例4 5 用do while語句計(jì)算10的階乘 for語句 for語句是三個循環(huán)語句中功能最強(qiáng) 使用最廣泛的一個 for語句的格式如下 for 表達(dá)式1 表達(dá)式2 表達(dá)式3 循環(huán)體語句 表達(dá)式1一般是一個賦值語句 它用來給循環(huán)控制變量賦初值 表達(dá)式2是一個布爾類型的表達(dá)式 它決定什么時候退出循環(huán) 表達(dá)式3一般用來修改循環(huán)變量 控制變量每循環(huán)一次后按什么方式變化 這三個部分之間用 分開 for語句的執(zhí)行過程 for intcha 0 a b a cha 1 在循環(huán)剛開始時 先計(jì)算表達(dá)式1 在這個過程中 一般完成的是初始化循環(huán)變量或其它變量 2 根據(jù)表達(dá)式2的值來決定是否執(zhí)行循環(huán)體 表達(dá)式2是一個返回布爾值的表達(dá)式 若該值為假 將不執(zhí)行循環(huán)體 并退出循環(huán) 若該值為真 將執(zhí)行循環(huán)體 3 執(zhí)行完一次循環(huán)體后 計(jì)算表達(dá)式3 在這個過程中一般會修改循環(huán)變量 4 轉(zhuǎn)入第 2 步繼續(xù)執(zhí)行 例4 6 用for語句計(jì)算10的階乘 跳轉(zhuǎn)語句 跳轉(zhuǎn)語句用來實(shí)現(xiàn)循環(huán)執(zhí)行過程中的流程轉(zhuǎn)移 在switch語句中使用過的break語句就是一種跳轉(zhuǎn)語句 在Java語言中 有兩種跳轉(zhuǎn)語句 break語句和continue語句 在Java語言中 可用break和continue控制循環(huán)的流程 其中 break用于強(qiáng)行退出循環(huán) 不執(zhí)行循環(huán)中剩余的語句 而continue則停止執(zhí)行當(dāng)前的循環(huán) 開始新的循環(huán) break語句 作用 使程序的執(zhí)行流程從一個語句塊內(nèi)部轉(zhuǎn)移出去 它只在switch語句和循環(huán)語句中使用 允許從switch語句的case子句中跳出 或從循環(huán)體內(nèi)跳出分為帶標(biāo)號和不帶標(biāo)號兩種形式 break 標(biāo)號名 帶標(biāo)號的break語句可以從多重循環(huán)體的最內(nèi)部跳出所有的循環(huán) 而不帶標(biāo)號的break語句只能跳到當(dāng)前循環(huán)外層 Label for inta 0 a 4 a for intj 0 j 2 j if a 2 breakLabel System out print a 2 j t System out println a a continue語句 continue語句只能用在循環(huán)語句中 作用是終止當(dāng)前這一輪循環(huán) 不再執(zhí)行在它后面的語句 直接進(jìn)入下一輪的循環(huán) continue語句具有帶標(biāo)號和不帶標(biāo)號兩種形式 continue 標(biāo)號名 標(biāo)號名必須放在循環(huán)語句之前 用于標(biāo)志這個循環(huán)體在while和do while循環(huán)中 不帶標(biāo)號的continue語句使程序流程直接跳到循環(huán)條件的判斷上 在for循環(huán)中 不帶標(biāo)號的continue語句直接計(jì)算表達(dá)式3的值 再根據(jù)表達(dá)式2的值決定是否繼續(xù)循環(huán) 文件名Ex4 10publicclassEx4 10 publicstaticvoidmain String args intj for j 1 j 10 j if j 5 continue System out print j 輸出整數(shù)1 2 3 4 6 7 8 9 10 遞歸 在方法體內(nèi)可以調(diào)用其他方法 方法體內(nèi)也可以調(diào)用該方法本身 即方法自己調(diào)用自己 我們稱自己直接或間接調(diào)用自己的方法為遞歸方法 在方法體內(nèi)調(diào)用該方法本身的過程 稱為方法的遞歸調(diào)用 下面我們通過分析Fibonacci序列介紹遞歸方法 Fibonacci序列 1 1 2 3 5 8 13 21 34 以1和1開始 每個后續(xù)數(shù)字是序列中前兩個數(shù)字的和 這個序列可以被遞歸地定義為下面的形式 f 0 1 f 1 1 f n f n 2 f n 1 n 2用遞歸方法計(jì)算Fibonacci序列第20項(xiàng) 求50到100 包含50和100 之間的素?cái)?shù)并輸出 素?cái)?shù)是指除1和它本身是該數(shù)的因子外 沒有別的因子的自然數(shù) 分析 自頂向下 逐步求精 循環(huán)變量i從50循環(huán)到100 每次增1 判斷i是否是素?cái)?shù)要判斷某個數(shù)i是否為素?cái)?shù) 設(shè)置變量j從2循環(huán)到 i 1 判斷j是否為i的因子 若i有因子j 則不是素?cái)?shù) 判斷j是否為i的因子的方法 如果表達(dá)式 i j 0 為true 說明i能被j整除 則j是i的因子結(jié)論 這個問題可以通過兩層循環(huán)實(shí)現(xiàn) 外層遞增被判斷的數(shù)字i 內(nèi)層循環(huán)判斷變量i是否為素?cái)?shù) publicclassEx4 13 publicstaticvoidmain Stringargs inti j next for i 50 i 100 i for j 2 j i 1 j if i j 0 continuenext System out println i 例4 13代碼 求兩個給定正數(shù)的最大公約數(shù)和最小公倍數(shù) 最大公約數(shù) 輾轉(zhuǎn)相除法 歐幾里德算法 余數(shù)1 大數(shù) 小數(shù)余數(shù)2 小數(shù) 余數(shù)1余數(shù)3 余數(shù)1 余數(shù)2直至余數(shù)為0 則最后一個除數(shù)為所求最小公倍數(shù) 大數(shù) 小數(shù) 最大公約數(shù) 內(nèi)容回顧 本章首先介紹基本的控制結(jié)構(gòu) 接下來討論選擇語句 循環(huán)語句 break語句 continue語句和遞歸等 雖然Java語言是面向?qū)ο蟮某绦蛟O(shè)計(jì)語言 但是面向?qū)ο蟮木幊桃彩且悦嫦蜻^程編程為基礎(chǔ)而發(fā)展起來的 在對象的方法等程序片內(nèi)部 仍然需要嚴(yán)格遵守傳統(tǒng)的結(jié)構(gòu)化程序設(shè)計(jì)原則 所以應(yīng)當(dāng)熟練掌握結(jié)構(gòu)化程序設(shè)計(jì)的三種基本流程 順序結(jié)構(gòu) 選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu) 實(shí)驗(yàn)要求 預(yù)習(xí)實(shí)驗(yàn)程序 熟悉選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)程序設(shè)計(jì)方法 充分理解程序執(zhí)行流程 完成參考書實(shí)驗(yàn)習(xí)題 作業(yè) P87 1 5 12輸出如下圖形- 1.請仔細(xì)閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 程序控制 結(jié)構(gòu) 實(shí)例
鏈接地址:http://weibangfood.com.cn/p-6848390.html