版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、第4章,C+的基本語句,本章主要內(nèi)容,4.1 C+語言的語句和程序結構 4.2 選擇結構語句 4.3 循環(huán)結構語句 4.4 控制執(zhí)行順序的語句 4.5 編程規(guī)范和編程風格,4.1 C+語言的語句和程序結構,4.1.1 C+語句分類 4.1.2 程序的基本結構,4.1.1 C+語句分類,1. 變量和對象聲明語句 在C+中,把完成對數(shù)據(jù)結構的定義和描述、對變量的定義性說明統(tǒng)稱為聲明語句。聲明語句在程序的執(zhí)行過程中,并沒有完成對數(shù)據(jù)進行操作的執(zhí)行體,而僅是向編譯程序提供一些說明性的信息。它可放在函數(shù)中允許出現(xiàn)語句的任何位置,也可以放在函數(shù)定義之外。 2. 流程控制語句 控制語句是用來完成對程序的執(zhí)行
2、順序進行一定控制的語句,如程序的選擇控制、循環(huán)控制、程序的跳轉(zhuǎn)等。 3. 表達式語句 表達式語句就是指在任一表達式的后面加上一個分號而構成的語句。 4. 函數(shù)調(diào)用語句 函數(shù)調(diào)用語句是在一次函數(shù)的調(diào)用后加上一個分號所構成的語句,它完成一次函數(shù)的調(diào)用。,5. 空語句 只由一個分號所構成的語句稱為空語句,它不執(zhí)行任何動作,主要用于指明被轉(zhuǎn)向的控制點或在特殊情況下作為循環(huán)語句的循環(huán)體。 6. 復合語句 復合語句(也稱塊語句)是指用花括號把一個或多個語句括起來后構成一個語句。 在C+中,復合語句從邏輯上被作為一個語句來處理,它可以出現(xiàn)在只允許出現(xiàn)一個語句的任何位置?;ɡㄌ柺荂+中的一個標點符號,左花括號
3、標明復合語句的開始位置,右花括號標明復合語句的結束位置。復合語句不需要分號來結束。復合語句主要是用在控制語句中。,4.1.2 程序的基本結構,在C+語言中,有結構化程序設計的3種基本結構:順序結構、選擇結構和循環(huán)結構,如圖4.1所示。這3種基本結構都有以下兩個共同特點: (1) 只有一個入口點,一個出口點。 (2) 對于要執(zhí)行的操作都有一條路徑,即從入口到出口要執(zhí)行的每一個操作。,圖4.1 3種基本控制結構,1. 順序結構 順序結構的程序是按從上到下的順序依次執(zhí)行各個語句。實現(xiàn)順序結構的語句有說明語句和表達式語句等。 2. 選擇結構 選擇結構是根據(jù)不同的條件執(zhí)行結果做出不同的選擇,從而執(zhí)行不同
4、的語句。實現(xiàn)選擇結構的語句有if語句、ifelse語句和switch語句等。 3. 循環(huán)結構 循環(huán)結構就是對程序中某些語句重復執(zhí)行多次。實現(xiàn)循環(huán)結構的語句有for語句、while語句和dowhile語句等。,4.2 選擇結構語句,4.2.1 條件語句 4.2.2 條件運算符“?:” 4.2.3 開關語句,4.2.1 條件語句,條件語句又稱為if語句,其根據(jù)條件是否滿足來決定是否執(zhí)行某條語句或者從兩個語句中選擇一個語句執(zhí)行。它有3種基本格式。 1. if語句 If語句的語法格式為: if() if語句的執(zhí)行過程如圖4.2所示。,圖4.2 if語句的執(zhí)行過程,2. ifelse語句 if.else
5、 的語句格式為: if (表達式) 語句序列1; else 語句序列2; ifelse語句執(zhí)行過程如圖4.3所示。,圖4.3 ifelse語句的執(zhí)行過程,3. if語句的嵌套 if語句的嵌套是指在if語句的內(nèi)嵌語句仍是if語句。例如,下面兩個使用了if語句的嵌套形式的結構。 語句格式為: if (表達式 e1) 語句S1 else if (表達式e2) 語句S2 else if (表達式e3) 語句S3 . else 語句Sn,4.2.2 條件運算符“?:”,使用條件運算符(?:)可以實現(xiàn)ifelse的功能,其一般形式為: exp1?exp2:exp3 條件運算符有三個操作數(shù),故我們將其稱為三
6、目運算符。條件運算符是C+語言中唯一一個三目運算符。 我們把上面這個表達式稱為條件表達式。這個條件表達式的意思是,如果exp1為真,則運算exp2,整個條件表達式的值為exp2的值;反之,則運算exp3,整個條件表達式的值為exp3的值。,4.2.3 開關語句,開關語句是指switch語句,它也稱為多選擇語句或者多分支語句。它可以根據(jù)給定的條件,從多個分支語句序列中選擇執(zhí)行一個分支的語句序列。該語句的一般格式為: switch(表達式) case常量表達式1:語句序列1; break; case常量表達式2:語句序列2; break; case常量表達式n:語句序列n; default:語句序
7、列n; ,(1) 表達式:可以控制程序的執(zhí)行過程,表達式的結果必須是整數(shù)、字符或枚舉量值。 (2) case后面的常量標號,其類型應與表達式的數(shù)據(jù)類型相同。 (3) 語句序列是switch語句的執(zhí)行部分。 (4) break是中斷跳轉(zhuǎn)語句,表示在完成相應的case標號規(guī)定的操作之后,不繼續(xù)執(zhí)行switch語句的剩余部分而直接跳出switch語句之外,繼而執(zhí)行switch結構后面的第一條語句,如果不在switch結構的case中使用break語句。 執(zhí)行過程如圖4.4所示。,圖4.4 switch語句的執(zhí)行過程,4.3 循環(huán)結構語句,4.3.1 while()語句 4.3.2 dowhile()
8、語句 4.3.3 for()語句 4.3.4 3種循環(huán)語句的比較 4.3.5 循環(huán)的嵌套及其應用,4.3.1 while()語句,while()語句用于首先判斷循環(huán)條件,當條件為真時,程序重復執(zhí)行某些操作。其語句格式: while (條件表達式) 循環(huán)體語句; while()語句的執(zhí)行過程如圖4.5所示。,圖4.5 while語句的執(zhí)行過程,4.3.2 dowhile()語句,dowhile語句的一般語法格式為: do while(); 執(zhí)行過程:先執(zhí)行語句,后判斷表達式的值;若表達式的值不為0,則繼續(xù)執(zhí)行循環(huán)體,直到表達式的值為0時為止。流程圖為如圖4.6所示。,圖4.6 dowhile語句
9、的執(zhí)行過程,4.3.3 for()語句,語句格式: for (表達式1; 表達式2; 表達式3) 語句序列; 其中的組成部分說明如下。 表達式1:通常為賦值表達式,用來確定循環(huán)結構中的控制循環(huán)次數(shù)的變量的初始值,實現(xiàn)循環(huán)控制變量的初始化。 表達式2:通常為關系表達式或邏輯表達式,用來判斷循環(huán)是否繼續(xù)進行的條件,將循環(huán)控制變量與某一值進行比較,以決定是否退出循環(huán)。 表達式3:通常為表達式語句,用來描述循環(huán)控制變量的變化,多數(shù)情況下為自增/自減表達式(復合加/減語句),實現(xiàn)對循環(huán)控制變量的修改。 循環(huán)體(語句序列):當循環(huán)條件滿足時應該執(zhí)行的語句序列??梢允呛唵握Z句、復合語句。若只有一條語句,則可
10、以省略。,for語句的執(zhí)行過程可以用如圖4.7所示的流程圖來描述。,圖4.7 for語句的執(zhí)行過程,4.3.4 3種循環(huán)語句的比較,(1) for和while語句都是先判斷循環(huán)條件,循環(huán)體可能一次也不執(zhí)行。而dowhile語句是先執(zhí)行循環(huán)體,后判斷循環(huán)條件,所以循環(huán)體至少要執(zhí)行一次。 (2) 由于for語句有三個表達式,可分別用于循環(huán)變量初始化、循環(huán)結束條件和循環(huán)控制變量的更新,所以用得最多的是for語句,其次是while語句,而dowhile語句相對于前兩種語句用得少一些。 在實際應用中,通常根據(jù)具體情況來選用不同的循環(huán)語句,選用的一般原則是: (1) 如果循環(huán)次數(shù)在執(zhí)行循環(huán)體之前就已確定,
11、一般用for語句;如果循環(huán)次數(shù)是由循環(huán)體的執(zhí)行情況來確定,則采用while語句或dowhile語句。 (2) 當循環(huán)體至少要執(zhí)行一次時,采用dowhile語句;反之如果循環(huán)體可能一次也不執(zhí)行,則選用while或for語句。,4.3.5 循環(huán)的嵌套及其應用,一個循環(huán)語句的循環(huán)體內(nèi)包含另一個完整的循環(huán)結構,稱為循環(huán)的嵌套。這種嵌套的過程可以有很多重,一個循環(huán)的外面包圍一層循環(huán)叫雙重循環(huán),如果一個循環(huán)的外面包圍二層循環(huán)叫三重循環(huán),一個循環(huán)的外面包圍三層或三層以上的循環(huán)叫多重循環(huán)。這種嵌套在理論上來說可以是無限的。 正常情況下:應先執(zhí)行內(nèi)層的循環(huán)體操作,然后是外層循環(huán)。例如:對于雙重循環(huán),內(nèi)層循環(huán)被執(zhí)
12、行的次數(shù)應為:內(nèi)層次數(shù)外層次數(shù)。 三種循環(huán)語句while、dowhile、for可以互相嵌套,自由組合。外層循環(huán)體中可以包含一個或多個內(nèi)層循環(huán)結構,但要注意的是,各循環(huán)必須完整包含,相互之間絕對不允許有交叉現(xiàn)象。因此每一層循環(huán)體都應用括起來。,4.4 控制執(zhí)行順序的語句,4.4.1 break語句 4.4.2 continue語句 4.4.3 goto語句 4.4.4 exit和abort函數(shù),4.4.1 break語句,中斷處理語句break語句有兩個功能,第一個功能是在switch語句中終止case的判斷,退出switch語句。第二個功能是在循環(huán)結構中終止本層循環(huán),退出循環(huán)結構。 brea
13、k的語法格式為: break; 在循環(huán)結構和switch語句中使用break語句,當程序執(zhí)行到break 時會跳出break 所在的循環(huán)和switch結構,使程序立即退出該語句結構轉(zhuǎn)而執(zhí)行該語句后面的下一條語句,其作用是用來中斷這四種語句的執(zhí)行。因此,如果執(zhí)行程序的某一點后,不需要等到正常結束就退出循環(huán)體或跳出switch結構的剩余語句,可以用break語句實現(xiàn)。,4.4.2 continue語句,continue 語句它僅能用于循環(huán)結構中,其作用是終止循環(huán)體的本次執(zhí)行,返回循環(huán)首部,檢查循環(huán)條件,以決定是否進行下一次的循環(huán)體的處理。 continue語句也稱為繼續(xù)語句。其一般語法格式為: c
14、ontinue; 在循環(huán)體的任何位置,當執(zhí)行到continue 語句時,程序被強迫跳過循環(huán)體剩余語句的執(zhí)行而直接返回循環(huán)的開頭重新進行循環(huán)條件的判斷,根據(jù)判斷的結果決定是否繼續(xù)執(zhí)行循環(huán)。即一旦執(zhí)行了continue 語句,程序就會跳過循環(huán)體中位于該continue 語句后面的所有語句,提前結束本次循環(huán)周期并開始新的一輪循環(huán)。,4.4.3 goto語句,goto語句即無條件轉(zhuǎn)移語句。其功能是改變程序控制的流程,無條件地將控制轉(zhuǎn)移到語句標號所在處。 1. 語句標號 語句標號是為了指示語句在程序中的位置,常常作為轉(zhuǎn)移語句(goto語句)的轉(zhuǎn)移目標。其格式如下: : 2. goto語句 goto語句改
15、變程序的流程,無條件地轉(zhuǎn)移到指定語句標號的語句處去執(zhí)行。其格式為: goto ; 3. goto語句使用說明 (1) 不能用goto語句轉(zhuǎn)移到其他函數(shù)中。,(2) goto語句可從條件語句或循環(huán)語句里面轉(zhuǎn)移到條件語句或循環(huán)語句外面;但不允許從條件語句或循環(huán)語句外面轉(zhuǎn)移到條件語句或循環(huán)語句里面。從循環(huán)體內(nèi)轉(zhuǎn)移到循環(huán)體外作用可由break或continue替代。 (3) goto語句可從多層循環(huán)的內(nèi)層跳到外層循環(huán)外。從結構化程序設計的角度出發(fā),在程序設計時應盡量避免使用goto語句。 (4) goto語句一般用來與if語句一起構成循環(huán)結構。但可由while、dowhile和for取代,不提倡這樣使
16、用。 (5) goto語句的大量使用會破壞程序的結構化,使程序的流程控制混亂,可讀性降低,調(diào)試困難。一般不提倡使用goto語句。,4.4.4 exit和abort函數(shù),exit函數(shù)和abort函數(shù)都是+的庫函數(shù),其功能都是終止程序的執(zhí)行,將控制返回給操作系統(tǒng)。當使用這兩個函數(shù)中的任一個函數(shù)時,都應包含頭文件stdlib.h。 1. exit函數(shù) exit函數(shù)的作用是無條件正常終止程序的執(zhí)行,并將控制返回給操作系統(tǒng)。原型為: void exit(int status); 2. abort函數(shù) abort函數(shù)用于異常終止程序的執(zhí)行。原型為: void abort(void);,4.5 編程規(guī)范和編
17、程風格,1. 源程序文件組織 每個程序文件單元通常都應由 .h 文件和 .cpp 文件組成,并將單元的公共聲明部分放在 .h 文件中。 2. 源程序文件結構 每個程序文件應由標題、內(nèi)容和附加說明3部分組成。 (1) 標題:文件最前面的注釋說明,其內(nèi)容主要包括程序名、作者、版權信息、簡要說明等,必要時應有更詳盡的說明(將此部分以空行隔開單獨注釋)。 (2) 內(nèi)容:為文件源代碼部分基本上按預處理語句、類型定義、變量定義、函數(shù)原型、函數(shù)實現(xiàn)(僅對.cpp文件)的順序。 (3) 附加說明:文件末尾的補充說明,如參考資料等,若內(nèi)容不多也可放在標題部分的最后。,3. 編輯風格 (1) 縮進:縮進以Tab為
18、單位,一個Tab為4個空格大小。 (2) 空格:數(shù)據(jù)和函數(shù)在其類型、修飾(如_fastcall 等)名稱之間適當空格并根據(jù)情況對齊。 (3) 對齊:原則上關系密切的行應對齊,對齊包括類型、修飾、名稱、參數(shù)等各部分對齊。 (4) 空行:程序文件結構各部分之間空兩行,若不必要也可只空一行,各函數(shù)實現(xiàn)之間一般空兩行,由于BCB會自動產(chǎn)生一行“/-”做分隔,另因每個函數(shù)還要有函數(shù)說明注釋,故通常只需空一行或不空,但對于沒有函數(shù)說明的情況至少應再空一行。 (5) 注釋:對注釋有以下3點要求: 必須是有意義的。 必須正確地描述了程序。 必須是最新的。,4. 命名規(guī)范 堅持采用匈牙利變量命名慣例,所有標識符一律用英文或英文縮寫,杜絕采用拼音,標識符中每個單詞首字母大寫,縮寫詞匯一般全部大寫,只在必要時加“_”間隔詞匯,用#define定義的宏一般全部大寫,其他具體細節(jié)待定。,本章習題,教材第54頁的第2、3題 教材第62頁的第7題 教材第69頁的第8、9、10題 教材第73頁的第11題,實驗4 選擇與循環(huán),時間:10月13日3-4節(jié) 要求: 掌握選擇與循環(huán)結構用法 了解控制程序執(zhí)行順序的方法 需要檢查4個程序代碼(教材79頁三個編程項目和自測題14),如果
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《GA 561-2005互聯(lián)網(wǎng)上網(wǎng)服務營業(yè)場所信息安全管理系統(tǒng)管理端功能要求》專題研究報告
- 《FZT 95024-2017熱轉(zhuǎn)移印花機》專題研究報告
- 《GAT 760.3-2008公安信息化標準管理分類與代碼 第3部分:標準性質(zhì)代碼》專題研究報告
- 《GAT 16.28-2012道路交通管理信息代碼 第28部分:駕駛證限制申請原因代碼》專題研究報告
- 養(yǎng)老院健康檔案管理制度
- 人力資源制度
- 企業(yè)員工績效反饋制度
- 企業(yè)加班管理制度
- 2026湖北省定向上海交通大學選調(diào)生招錄備考題庫附答案
- 2026湖南長沙礦產(chǎn)資源勘查中心公開招聘事業(yè)編制工作人員參考題庫附答案
- 《肺癌的診斷與治療》課件
- 人教版三年級上冊數(shù)學應用題100題及答案
- 防污閃涂料施工技術措施
- 環(huán)衛(wèi)清掃保潔、垃圾清運及綠化服務投標方案(技術標 )
- 房地產(chǎn)運營-項目代建及管理實務
- 神經(jīng)病學教學課件:腦梗死
- GB/T 21393-2008公路運輸能源消耗統(tǒng)計及分析方法
- GB/T 13803.2-1999木質(zhì)凈水用活性炭
- GB/T 12385-2008管法蘭用墊片密封性能試驗方法
- 中國近代史期末復習(上)(第16-20課)【知識建構+備課精研】 高一歷史上學期期末 復習 (中外歷史綱要上)
- GB 11887-2008首飾貴金屬純度的規(guī)定及命名方法
評論
0/150
提交評論