版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
C語言程序設(shè)計與項目實踐清華大學(xué)出版社學(xué)生成績的統(tǒng)計分析———循環(huán)程序設(shè)計項目5回顧與作業(yè)點評for語法格式do…while語法格式while…語法格式預(yù)習(xí)檢查如何終止循環(huán)?continue語句和break語句格式?目標(biāo)掌握continue語句掌握break語句項目任務(wù)任務(wù)5-2、強(qiáng)制中斷循環(huán)1、如何強(qiáng)制結(jié)束循環(huán)?2、循環(huán)終止條件如何設(shè)定?控制轉(zhuǎn)移語句對于工程控制問題,往往無法確定循環(huán)次數(shù)或循環(huán)終止條件,可根據(jù)程序運(yùn)行過程中發(fā)生的某種條件中斷程序的運(yùn)行,即所謂的強(qiáng)制中斷;同樣的對于某些控制問題,可能希望提前結(jié)束本次循環(huán)而開始新一次的循環(huán)控制。要實現(xiàn)這種控制,可以采用C語言的轉(zhuǎn)移控制語句break、continue和goto,以控制程序流程的走向。break語句2-1break語句可以改變程序的控制流break語句用于do-while、while、for循環(huán)中時,可使程序終止循環(huán)而執(zhí)行循環(huán)后面的語句break語句通常在循環(huán)中與條件語句一起使用。若條件值為真,將跳出循環(huán),控制流轉(zhuǎn)向循環(huán)后面的語句如果已執(zhí)行break語句,就不會執(zhí)行循環(huán)體中位于break語句后的語句在多層循環(huán)中,一個break語句只向外跳一層一般形式為:if(表達(dá)式)break;break語句2-2跳出for循環(huán)for(;;){c=getchar();if(c=='E'||c=='e')
break;}
跳出while循環(huán)while(1){
c=getchar();if(c=='E'||c=='e')
break;}
跳出do-while循環(huán)do{
c=getchar();if(c=='E'||c=='e')
break;}while(1);案例:統(tǒng)計從鍵盤輸入的若干個字符中有效字符的個數(shù),以換行符作為輸入結(jié)束。有效字符是指第一個空格符前面的字符,若輸入字符中沒有空格符,則有效字符為除了換行符之外的所有字符。#include<stdio.h>voidmain(){ intcount=0,ch; printf("\n請輸入一行字符:"); while((ch=getchar())!='\n') { if(ch=='')
break; count++; } printf("\n共有%d個有效字符。\n",count);}break語句案例內(nèi)存chcountH0_請輸入一行字符:Helloworld共有5個有效字符1循環(huán)執(zhí)行5次5break案例2-1【案例5-9】求300以內(nèi)能被17整除的最大的3個正整數(shù)。分析:如果m被n整除,則m%n=0,所以,求300以內(nèi)內(nèi)能被17整除的最大的3個正整數(shù),取x的值從300開始,如x%17=0,表示x被17整除,只找三個這樣的數(shù),用一個計數(shù)器count計數(shù)。break案例2-2voidmain(){intx;intcount=0;for(x=300;x>=17;x--){if(x%17==0){count++;if(count>3)break;
printf("x=%d\n",x);
}}}continue語句2-1continue語句只能用在循環(huán)里continue語句的作用是跳過循環(huán)體中剩余的語句而執(zhí)行下一次循環(huán)對于while和do-while循環(huán),continue語句執(zhí)行之后的動作是條件判斷;對于for循環(huán),隨后的動作是變量更新
一般形式為:if(表達(dá)式)continue;continue語句2-2while(…){
…………continue;
…………}while(…){
…………
break;
…………}跳出整個循環(huán)繼續(xù)下一次循環(huán)案例:求整數(shù)1~100中個位不為3的所有數(shù)的累加值#include<stdio.h>voidmain(){ inti,sum=0; for(i=1;i<=100;i++) { if(i%10==3)
continue; sum+=i; } printf("sum=%d\n",sum);}contine案例內(nèi)存isumnull0131循環(huán)執(zhí)行到i=1378輸出:sum=45701循環(huán)執(zhí)行到i=1011014570continue語句案例2-1【案例5-10】求300以內(nèi)能被17整除的所有正整數(shù)。分析:將從1到300的所有數(shù)x用來判斷是否被17整除。continue語句案例2-2voidmain(){
intx;for(x=1;x<=200;x++){
if(x%17!=0)continue;printf(“%d”,x);}}goto語句2-1goto語句是一條無條件轉(zhuǎn)移語句,goto語句是一種讓程序員任意控制流程的有效工具,充分表現(xiàn)程序的靈活性。在結(jié)構(gòu)化程序設(shè)計,goto語句會使程序流程無規(guī)律、可讀性差,因此,建議盡量少用或不用該語句。當(dāng)需要跳出某種嵌套較深的結(jié)構(gòu)時,如果使用break語句,只能跳出break所在層。如果一次要跳出二層甚至更多層,這時使用goto語句,就是不錯的選擇。goto語句的格式:goto標(biāo)識符;其中標(biāo)識符是語句轉(zhuǎn)移的目標(biāo)。該標(biāo)識符必須局限在當(dāng)前函數(shù)的標(biāo)號。標(biāo)號的格式與變量名相同,并在其后跟冒號。goto語句2-2用if語句和goto語句構(gòu)成循環(huán)??梢岳胕f和goto語句實現(xiàn)循環(huán),這種方式也是早期非結(jié)構(gòu)化程序設(shè)置實現(xiàn)循環(huán)的一種方法。其處理流程如圖5-17。goto語句案例2-1【案例5-11】編程,求1~10的平方根。分析:
利用if和goto語句構(gòu)成一個循環(huán),設(shè)置變量num,其取值為1~100,并計算其平方根,當(dāng)num>100退出循環(huán)。goto語句案例2-2voidmain(){intnum;printf("num\troot\n");
num=1;loop:if(num<=10)
{
printf("%d\t%5.3f\n",num,sqrt(num));
num++;
gotoloop;}}goto語句案例2-12、利用goto實現(xiàn)跳出循環(huán)【案例5-12】用逐個判別法求2~100之間的所有素數(shù)。
分析:將2~100的所有整數(shù)逐個判斷,如果是素數(shù),則打印輸出。程序流程如圖5-19所示。goto語句案例2-2#include<stdio.h>#include<math1voidmain(){inti,j,c;for(i=2;i<100;i++){for(j=2;j<i/2;j++)if(i%j==0)gotoex;printf("%4d",i);c++;if(c%5==0)printf("\n");ex:;}}任務(wù)分析與實施任務(wù)分析統(tǒng)計某門課程的平均成績。對于某個班級學(xué)生某門課程平均成績的統(tǒng)計,需要對每個學(xué)生該
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《肺細(xì)胞病理學(xué)》課件
- 《用圖表展示數(shù)據(jù)》課件
- 廣東省汕尾市海豐縣2023-2024學(xué)年八年級上學(xué)期期末考試數(shù)學(xué)試卷
- 《胃造瘺護(hù)理》課件
- 養(yǎng)老院老人健康監(jiān)測人員激勵制度
- 拆除太陽能熱水器的協(xié)議書(2篇)
- 2024年塔吊租賃合同及施工安全協(xié)議3篇
- 2025年鄭州貨車從業(yè)資格考試題庫
- 2025年黑河貨運(yùn)從業(yè)資格證考試
- 《HELLP綜合征與HUS》課件
- ppt動態(tài)計時器(6分鐘)
- 航空集裝器知識完整版
- (完整版)臨床檢驗基礎(chǔ)名詞解釋
- 深度分析澳洲資源量最大的皮爾巴拉地區(qū)礦床匯總
- 《工程與試驗》編委會章程
- 實習(xí)錄用通知書
- DFMEA模板全解(完整版)
- 蘇教版二年級上冊《連乘連除乘除混合》PPT
- 頸動脈狹窄的治療策略CREST研究解讀
- 深圳市建筑工程消耗量定額2016[共70頁]
- (完整版)土石方挖運(yùn)專項施工方案
評論
0/150
提交評論