C語言程序設(shè)計 課件 任務(wù)2.4 循環(huán)結(jié)構(gòu)的使用_第1頁
C語言程序設(shè)計 課件 任務(wù)2.4 循環(huán)結(jié)構(gòu)的使用_第2頁
C語言程序設(shè)計 課件 任務(wù)2.4 循環(huán)結(jié)構(gòu)的使用_第3頁
C語言程序設(shè)計 課件 任務(wù)2.4 循環(huán)結(jié)構(gòu)的使用_第4頁
C語言程序設(shè)計 課件 任務(wù)2.4 循環(huán)結(jié)構(gòu)的使用_第5頁
已閱讀5頁,還剩32頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

高級語言程序設(shè)計模塊二程序設(shè)計基礎(chǔ)任務(wù)2.4循環(huán)結(jié)構(gòu)的使用C語言程序設(shè)計基礎(chǔ)與實(shí)踐課程組04技能點(diǎn)拓展03技能點(diǎn)詳解02技能點(diǎn)分析目錄CONTENTS任務(wù)2.4循環(huán)結(jié)構(gòu)的使用01問題引入05技能點(diǎn)檢測一問題引入早在公元三世紀(jì),魏晉時期的數(shù)學(xué)家劉徽利用割圓術(shù),用圓內(nèi)接六邊形起算,令邊數(shù)加倍,以圓內(nèi)接正3*2n邊形的面積為圓面積的近似值,從而進(jìn)一步可以算出圓周率。南北朝時期杰出的數(shù)學(xué)家祖沖之,更是將圓周率精確到小數(shù)第7位。無論是劉徽還是祖沖之,他們都付出了常人難以想象的心血重復(fù)進(jìn)行了大量的運(yùn)算??萍及l(fā)達(dá)的今天,我們可以運(yùn)用計算機(jī)里的循環(huán)結(jié)構(gòu)來幫助我們進(jìn)行這些重復(fù)的操作,那么如何編寫循環(huán)結(jié)構(gòu)的程序呢?04技能點(diǎn)拓展03技能點(diǎn)詳解02技能點(diǎn)分析目錄CONTENTS01問題引入05技能點(diǎn)檢測任務(wù)2.4循環(huán)結(jié)構(gòu)的使用二技能點(diǎn)分析1.了解循環(huán)的概念和意義2.掌握while循環(huán)和do…while循環(huán)的語法和應(yīng)用3.掌握for循環(huán)的語法和應(yīng)用4.掌握循環(huán)嵌套的方法5.能夠使用循環(huán)結(jié)構(gòu)解決實(shí)際問題學(xué)習(xí)目標(biāo)1.什么是循環(huán)結(jié)構(gòu)?實(shí)現(xiàn)循環(huán)結(jié)構(gòu)的語句有哪些?2.while循環(huán)和do...while循環(huán)的區(qū)別是什么?3.for循環(huán)的使用變體形式有哪些?4.什么情況下需要使用嵌套循環(huán)?學(xué)期預(yù)習(xí)04技能點(diǎn)拓展03技能點(diǎn)詳解02技能點(diǎn)分析目錄CONTENTS01問題引入05技能點(diǎn)檢測任務(wù)2.4循環(huán)結(jié)構(gòu)的使用三技能點(diǎn)詳解在一定的條件下,去重復(fù)執(zhí)行一組語句,這樣的語句結(jié)構(gòu)稱為“循環(huán)結(jié)構(gòu)”,被重復(fù)執(zhí)行的那組語句被稱為“循環(huán)體”。循環(huán)結(jié)構(gòu)在程序設(shè)計中的應(yīng)用是極為廣泛的,下面是大多數(shù)編程語言中循環(huán)語句的流程圖:圖2.4.1循環(huán)語句流程圖三技能點(diǎn)詳解C語言提供了以下幾種循環(huán)類型,如表2.4.1所示:表2.4.1循環(huán)語句描述對照表三技能點(diǎn)詳解——1while循環(huán)只要給定的條件為真,C語言中的while循環(huán)語句就會重復(fù)執(zhí)行一組目標(biāo)語句。C語言中while循環(huán)的語法:在這里,循環(huán)體語句可以是一個單獨(dú)的語句,也可以是幾個語句組成的代碼塊。條件可以是任意的表達(dá)式,當(dāng)為任意非零值時都為true。當(dāng)條件為true時執(zhí)行循環(huán)體。當(dāng)條件為false時,退出循環(huán),程序流將繼續(xù)執(zhí)行緊接著循環(huán)的下一條語句。三技能點(diǎn)詳解——1while循環(huán)

While循環(huán)語句流程圖如圖2.4.2所示:圖2.4.2while循環(huán)語句流程圖在這里,while循環(huán)的關(guān)鍵點(diǎn)是循環(huán)可能一次都不會執(zhí)行。當(dāng)條件為false時,會跳過循環(huán)主體,直接執(zhí)行緊接著while循環(huán)的下一條語句。三技能點(diǎn)詳解——2do...while循環(huán)不像for和while循環(huán),它們是在循環(huán)頭部測試循環(huán)條件。在C語言中,do...while循環(huán)是在循環(huán)的尾部檢查它的條件。do...while循環(huán)與while循環(huán)類似,但是do...while循環(huán)會確保至少執(zhí)行一次循環(huán)。C語言中do...while循環(huán)的語法:請注意,條件表達(dá)式出現(xiàn)在循環(huán)的尾部,所以循環(huán)中的循環(huán)體語句會在條件被測試之前至少執(zhí)行一次。如果條件為真,控制流會跳轉(zhuǎn)回上面的do,然后重新執(zhí)行循環(huán)體語句。這個過程會不斷重復(fù),直到給定條件變?yōu)榧贋橹埂H寄茳c(diǎn)詳解——2do...while循環(huán)do...while循環(huán)語句流程圖如圖2.4.3所示:圖2.4.3do...while循環(huán)語句流程圖三技能點(diǎn)詳解——3for循環(huán)for循環(huán)允許您編寫一個執(zhí)行指定次數(shù)的循環(huán)控制結(jié)構(gòu)。C語言中for循環(huán)的語法:下面是for循環(huán)的控制流:表達(dá)式1通常是為循環(huán)變量指定初值,會首先被執(zhí)行,且只會執(zhí)行一次。這一步允許您聲明并初始化任何循環(huán)控制變量。您也可以不在這里寫任何語句,只要有一個分號出現(xiàn)即可。接下來,會判斷表達(dá)式2,如果為真,則執(zhí)行循環(huán)主體。如果為假,則不執(zhí)行循環(huán)主體,且控制流會跳轉(zhuǎn)到緊接著for循環(huán)的下一條語句。三技能點(diǎn)詳解——3for循環(huán)在執(zhí)行完for循環(huán)主體后,控制流會跳回上面的表達(dá)式3去執(zhí)行。該語句允許您更新循環(huán)控制變量。該語句可以留空,只要在條件后有一個分號出現(xiàn)即可。條件再次被判斷。如果為真,則執(zhí)行循環(huán),這個過程會不斷重復(fù)(循環(huán)主體,然后增加步值,再然后重新判斷條件)。在條件變?yōu)榧贂r,for循環(huán)終止。for循環(huán)語句流程圖如圖2.4.4所示:圖2.4.4for循環(huán)語句流程圖三技能點(diǎn)詳解——4嵌套循環(huán)C語言允許在一個循環(huán)內(nèi)使用另一個循環(huán),下面從語法和流程圖的角度給大家闡述這個概念。C語言中嵌套for循環(huán)語句的語法:嵌套for循環(huán)流程圖如圖2.4.5所示:圖2.4.5嵌套for循環(huán)流程圖三技能點(diǎn)詳解——4嵌套循環(huán)C語言中嵌套while循環(huán)語句的語法:嵌套While循環(huán)流程圖如圖2.4.6所示:圖2.4.6嵌套while循環(huán)流程圖三技能點(diǎn)詳解——4嵌套循環(huán)C語言中嵌套do...while循環(huán)語句的語法:嵌套do...while循環(huán)流程圖如圖2.4.7所示:關(guān)于嵌套循環(huán)有一點(diǎn)值得注意,您可以在任何類型的循環(huán)內(nèi)嵌套其他任何類型的循環(huán)。比如,一個for循環(huán)可以嵌套在一個while循環(huán)內(nèi),反之亦然。圖2.4.7嵌套do...while循環(huán)流程圖三技能點(diǎn)詳解——5無限循環(huán)如果條件永遠(yuǎn)不為假,則循環(huán)將變成無限循環(huán)。for循環(huán)在傳統(tǒng)意義上可用于實(shí)現(xiàn)無限循環(huán)。由于構(gòu)成循環(huán)的三個表達(dá)式中任何一個都不是必需的,您可以將某些條件表達(dá)式留空來構(gòu)成一個無限循環(huán)。案例2.4.1while循環(huán)在這個案例中,我們先定義一個整型變量,并對其賦值10,然后通過while循環(huán)將其值增加到20。/**********************************************內(nèi)容簡述:通過while循環(huán)將變量的值由10增到20。**********************************************/#include

<stdio.h>

intmain(void){

inta=10;

while(a<=20) { printf("a的值:%d\n",a); a++; }printf("a的值:%d\n",a);

return0;}三技能點(diǎn)詳解——案例案例2.4.2do...while循環(huán)在這個案例中,我們先定義一個整型變量,并對其賦值10,然后通過do...while循環(huán)將其值增加到20。/***********************************************內(nèi)容簡述:通過do...while循環(huán)將變量的值由10增到20。***********************************************/#include

<stdio.h>

intmain(void){

inta=10;

do { printf("a的值:%d\n",a); a++; }while(a<=20);printf("a的值:%d\n",a);

return0;}三技能點(diǎn)詳解——案例案例2.4.3for循環(huán)我們先定義一個整型變量,并對其賦值10,然后通過for循環(huán)將其值增加到20。/***********************************************內(nèi)容簡述:通過for循環(huán)將變量的值由10增到20。***********************************************/#include

<stdio.h>

intmain(void){

inta;

for(a=10;a<=20;a++) { printf("a的值:%d\n",a); }

return0;}三技能點(diǎn)詳解——案例案例2.4.4嵌套for循環(huán)利用嵌套for循環(huán)輸出2-50內(nèi)的所有質(zhì)數(shù)。/***********************************************內(nèi)容簡述:利用嵌套for循環(huán)輸出2-50內(nèi)的所有質(zhì)數(shù)。***********************************************/#include

<stdio.h>

intmain(void){

int

i,j

for(i=2;i<50;i++) {

for(j=2;j<=i-1;j++)//用2到i-1作為除數(shù)去驗(yàn)證

{

if(!(i%j))//如果i能被j整除,則不是質(zhì)數(shù),余下的循環(huán)就無需進(jìn)行

break;

}

if(j>i-1)//在整個循環(huán)過程中i都沒有被任何一個除數(shù)j整除,故是質(zhì)數(shù)

printf("%d是質(zhì)數(shù)\n",i);

}

return0;}三技能點(diǎn)詳解——案例案例2.4.5嵌套while循環(huán)36塊磚,36人搬,男搬4,女搬3,兩個小孩抬一磚。要求一次全搬完,問男、女、小孩各若干?三技能點(diǎn)詳解——案例/**************************內(nèi)容簡述:搬磚問題。**************************/#include

<stdio.h>intmain(void){

intmen=1,women,children;

while(men<=8)//男人的取值范圍在1到8之間 { women=1;

while(women<=11)//女人的取值范圍在1到11之間 { children=36-men-women;

if(4.0*men+3.0*women+children/2.0==36.0)//利用36塊磚36人

一次全搬完列等式 printf("男人有%d個,女人有%d個,小孩有\(zhòng)%d個。\n",men,women,children); women++; } men++;

}

return0;}三技能點(diǎn)詳解——案例案例2.4.6

嵌套do...while循環(huán)打印一個由*組成的5行的直角三角形。/****************************************內(nèi)容簡述:打印一個由*組成的5行的直角三角形。****************************************/#include

<stdio.h>

intmain(void){

inti=1,j;

do { j=1;

do { printf("*"); j++; }while(j<=i);//內(nèi)層do...while控制每一行的*個數(shù) printf("\n");//每一行打印完后要換一行

i++; }while(i<=5);//外層do...while控制要打印的行數(shù)

return0;}三技能點(diǎn)詳解——案例案例2.4.7

無限循環(huán)通過該案例演示一個無限循環(huán)。/*****************************內(nèi)容簡述:無限循環(huán)演示。*****************************/#include

<stdio.h>

intmain(void){

for(;;) { printf("該循環(huán)會永遠(yuǎn)執(zhí)行下去\n"); }

return0;}三技能點(diǎn)詳解——案例04技能點(diǎn)拓展03技能點(diǎn)詳解02技能點(diǎn)分析目錄CONTENTS01問題引入05技能點(diǎn)檢測任務(wù)2.4循環(huán)結(jié)構(gòu)的使用四技能點(diǎn)拓展循環(huán)控制語句:循環(huán)控制語句能夠改變代碼的執(zhí)行順序,通過它你可以實(shí)現(xiàn)代碼的跳轉(zhuǎn)。C提供了下列的循環(huán)控制語句,如表2.4.2所示:表2.4.2循環(huán)控制語句描述對照表四技能點(diǎn)拓展——1break語句C語言中break語句有以下兩種用法:1)當(dāng)break語句出現(xiàn)在一個循環(huán)內(nèi)時,循環(huán)會立即終止,且程序流將繼續(xù)執(zhí)行緊接著循環(huán)的下一條語句;2)它可用于終止switch語句中的一個case。如果您使用的是嵌套循環(huán)(即一個循環(huán)內(nèi)嵌套另一個循環(huán)),那么break語句用在哪一層循環(huán)就會結(jié)束整個相應(yīng)的循環(huán),跳到該循環(huán)的后續(xù)語句處去執(zhí)行。C語言中break語句的語法:四技能點(diǎn)拓展——2continue語句C語言中的continue語句有點(diǎn)像break語句。但它不是強(qiáng)制終止,continue會跳過當(dāng)前循環(huán)體中它后面的其它語句,提前結(jié)束本次循環(huán),直接去判斷循環(huán)條件,以決定是否進(jìn)入下一次循環(huán)。注意,該語句只能用在C語言的循環(huán)結(jié)構(gòu)中。C語言中continue語句的語法:四技能點(diǎn)拓展——3goto語句C語言中的goto語句允許把控制無條件轉(zhuǎn)移到同一函數(shù)內(nèi)的被標(biāo)記的語句。注意:在任何編程語言中,都不建議使用goto語句。因?yàn)樗沟贸绦虻目刂屏麟y以跟蹤,使程序難以理解和難以修改。任何使用goto語句的程序可以改寫成不需要使用goto語句的寫法。C語言中g(shù)oto語句的語法:四技能點(diǎn)拓展——3goto語句在這里,label可以是任何除C關(guān)鍵字以外的純文本,它可以設(shè)置在C程序中g(shù)oto語句的前面或者后面,如圖2.4.14所示:圖2.4.14goto語句執(zhí)行示意圖04技能點(diǎn)拓展03技能

溫馨提示

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

評論

0/150

提交評論