




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第3章 順序及分支程序設計,本章重點: 1、復合語句 2、if 語句 3、ifelse語句 4、嵌套的if及ifelse語句 5、常見錯誤,31 語句概述,語句是一個程序的主要構成部分。在C語言里, 一個語句是在結尾處用分號結束的。根據語句功能或構成的不同,C語言語句可分為五類: 1表達式語句 2空語句 3函數調用語句 4復合語句 5控制語句,1表達式語句 表達式語句由表達式加上分號“;”就構成了一個語句。事實上,C語言中有使用價值的表達式語句主要有3種: (1)賦值語句。例如:sum=x+y; (2)自加自減運算符構成的表達式語句。例如:i+; (3)逗號表達式語句。例如:x=1,y=1;
2、2空語句,光有一個分號“;”,作為語句結束符,它表示什么也不做。,3函數調用語句 函數調用語句是由一次函數調用加一個分號“;”構成。例如: printf (Printf is a C function ); 其實“函數調用語句”也是一種表達式語句,只是為了便于理解和使用,我們把“函數調用語句”單獨作為一種語句。,4復合語句 把多個語句用括號 括起來組成的一個語句稱復合語句。 在程序中應把復合語句看成是單條語句,而不是多條語句,例如: x=y+z; a=b+c; printf(“%d%d”,x,a); 是一條復合語句。復合語句內的各條語句都必須以分號“;”結尾,在括號“”外不能加分號。,5控制語
3、句 控制語句用于控制程序的流程, 以實現(xiàn)程序的各種結構方式。它們由特定的語句定義符組成。語言有九種控制語句。 可分成以下三類: (1) 選擇控制語句 if語句,switch語句 (2) 循環(huán)執(zhí)行語句 do while語句,while語句,for語句 (3) 轉向語句 break語句,goto語句,continue語句,return語句,32 問題的引出 (順序程序示例),例3.1有三個電阻并聯(lián),其阻值分別為10、25、50,求并聯(lián)后的電阻。計算并聯(lián)電阻的公式是:,#include stdio.h main() float r,r1,r2,r3; r1=10; r2=25; r3=50; r=1
4、/(1/r1+1/r2+1/r3); printf(并聯(lián)電阻r=%8.2fn,r); 程序運行結果: 并聯(lián)電阻r= 6.25,33 if 語句,331 if語句的一般形式 C語言中有一種特有的條件運算符“ ? : ”,其格式為:c?e1:e2 。若條件c成立,即為真,則取e1的值,否則取e2的值。 此條件運算符在某種程度上可以起到邏輯判斷的作用,我們可以用條件運算符來解決一些問題。例如:,例3.2 求分段函數的值。 #include math.h #include stdio.h main() float x,y; /*變量y存放f(x)的值*/ printf(請輸入x的值:); scanf(
5、%f, ,程序運行結果: 請輸入x的值:2 當x=2.000000時,f(x)=2.236068,例3.3 任意輸入兩個整數,請按降序輸出這兩個數。 #include stdio.h main ( ) int a,b; printf(請輸入兩個整數(a,b):); scanf(%d,%d, /*條件不成立則執(zhí)行語句2 */ ,if 語句的一般格式: if() else ,其語義是,若表達式的值不為零,則執(zhí)行,否則,執(zhí)行。此處的和可以是任何形式的語句。if-else構作了一個兩路分支結構。,332 if-else中的復合語句 如果兩個分支中需要執(zhí)行的語句不止一條,必須用“ ”括起來,作為一個復合
6、語句使用,若只有一條語句,“ ”可以省略。 例3.4 已知實數a,b,計算u=(r+s)2, v=(r+s)3的值。 這里: 當ab時,r=a2-b2,s=a/b 當ab時,r=b2-a2,s=a/b+4,#include stdio.h main() float a,b,u,v,s,r; printf(請輸入實數a,b:); scanf(%f,%f, ,if 語句的一般格式: if() else ,分析語法錯誤: if(ab) r=a*a-b*b; s=a/b; else r=b*b-a*a; s=a/b+4; ,if 語句的一般格式: if() else ,分析語法錯誤: if(ab) r
7、=a*a-b*b; s=a/b; ; else r=b*b-a*a; s=a/b+4; ,if 語句的一般格式: if() else ,分析邏輯錯誤: 若ab成立,哪幾條語句執(zhí)行? if(ab) r=a*a-b*b; s=a/b; else r=b*b-a*a; s=a/b+4;,1,2,3,注意事項:,(1)if后面的一定要有括號,這是語法約定。,(2)允許只使用if語句,沒有else;但程序中不可以沒有if而只有else;,(3)只能執(zhí)行與if有關的語句或者只執(zhí)行與else有關的語句,而不可能同時執(zhí)行兩者。,(4)復合語句內的各條語句都必須以分號“;”結尾,在括號“”外不能加分號;,(5)
8、if語句的表達式可以是任意類型的C語言的合法的表達式,但計算結果必須為整型、字符型或浮點型之一。,333 if 語句的表達式,C語言沒有邏輯型數據,用非0的數表示“真”,而用0表示“假”,只有表達式的值為“真”時,才執(zhí)行相對應的分支語句。,構成表達式的運算符可以是算術運算符,關系運算符和邏輯運算符。,關系運算符包括大于()、小于(=)、小于等于(=)和不等于(!=)六種,用于比較運算,其運算值用整數1表示“真”,用整數0表示“假”。,邏輯運算符包括與( scanf(%d, ,括號(),邏輯非,算術運算符,關系運算符,邏輯與,邏輯或,賦值運算符,高 低,圖3-1閏年表達式計算分析,if(year
9、%4=0 scanf(%d, ,例3.7 輸入任意三個整數a、b、c,求三個數中的最大值。,34 if語句的嵌套,#include stdio.h main() int a,b,c,max; printf(請輸入a,b,c:); scanf(%d,%d,%d, ,在一個if語句的分支語句中又包含另一個if語句,從而構成了if語句的嵌套使用。,從后往前,(1)else與前面最接近的if配對。(2)復合語句外的else不能與復合語句內的if配對,342 流程圖(自學) 表3-2 流程圖圖形符號,343 if與else的配對規(guī)則 C語言規(guī)定:else與前面最接近它而還沒有和其他else語句配對的if
10、語句配對。 同時從書寫格式上也要注意,要有層次感,好的程序員應該養(yǎng)成這一習慣,以便他人理解你的程序和自己將來的修改。 例挑選三個數中最大的一個數,/*錯誤寫法*/ /*正確寫法*/,(2)復合語句外的else不能與復合語句內的if配對,從后往前,(1)else與前面最接近的if配對,例3.10 求解一元二次解方程:,運用結構化程序設計思想:先整體后局部,輸入a,b,c; 計算delta; 根據delta的不同情況計算并輸出根;,1,2,3,if(delta0) else,3_1,if(delta0) else if(delta0) else ,偽代碼,#include #include mai
11、n() float a,b,c,delta; printf(請輸入方程系數a,b,c:); scanf(%f,%f,%f,if(delta0) else if(delta0) else ,r1=(-b+sqrt(delta)/2/a; r2= =(-b-sqrt(delta)/2/a;,r=b/2/a; Im=sqrt(-delta);,r=-b/2/a;,1,2,3,1,2,3,#include #include main() float a,b,c,delta,x1,x2,realpart,imagpart; printf(請輸入方程系數a,b,c:); scanf(%f,%f,%f, e
12、lse if(delta1e-6), x1=(-b+sqrt(delta)/(2*a); x2=(-b-sqrt(delta)/(2*a); printf(“有兩個不相等的實根:%8.4f和%8.4fn,x1,x2); else realpart=-b/(2*a); imagpart=sqrt(-delta)/(2*a); printf(有兩個不相等的虛根:n); printf(%8.4f+%8.4fin,realpart,imagpart); printf(%8.4f-%8.4fin,realpart,imagpart); ,35 switch 語句,if語句只能實現(xiàn)兩路分支,在兩者中選擇其
13、一。雖然嵌套的if語句可以實現(xiàn)多路檢驗,但有時不夠簡潔。為此C語言提供了實現(xiàn)多路選擇的另一個語句switch,稱為開關語句。下面,我們來看一個用switch語句編寫的具有多路分支的程序。,例3.11 模擬計算器的功能。編寫一個程序,能夠根據用戶輸入的運算符,對兩個數進行運算。流程圖如3-5所示。源程序如下:,#include stdio.h main() float x,y; /*存放兩個運算符分量*/ char operator; /*存放運算符*/ printf (請輸入x,運算符,y:); scanf (%f%c%f,switch(operator) case +: printf (%.2f%c%.2f=%.2fn,x,operator,y,x+y); break; case -: printf (%.2f%c%.2f=%.2fn,x,operator,y,x-y); break; case
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 模具設計方案評審
- 健康促進區(qū)課件
- 2025貴州工程應用技術學院輔導員考試試題及答案
- 2025石家莊財經職業(yè)學院輔導員考試試題及答案
- 2025硅湖職業(yè)技術學院輔導員考試試題及答案
- 紫外線消毒安全與衛(wèi)生標準
- T/ZBH 006-2018高光熱比本體著色平板玻璃
- 金沙醬酒酒業(yè)投資集團有限公司招聘筆試題庫2025
- 福建省德化縣農業(yè)生產資料公司招聘筆試題庫2025
- 河南循環(huán)科技產業(yè)集團(鄭州)招聘筆試題庫2025
- 齒輪測量中心校準規(guī)范
- 河道治理工程地質勘察報告
- 二手房買賣標準協(xié)議書
- 寶鋼BQB 481-2023全工藝冷軋中頻無取向電工鋼帶文件
- 《建筑施工安全檢查標準》jgj59
- 出境產品企業(yè)自檢自控計劃
- 勾股定理說課課件
- 蛛網膜下腔出血病人護理查房
- 物流專線合作協(xié)議
- 2.PaleoScan詳細操作流程
- 紅綠視標檢測(驗光技術課件)
評論
0/150
提交評論