順序分支結(jié)構(gòu).ppt_第1頁
順序分支結(jié)構(gòu).ppt_第2頁
順序分支結(jié)構(gòu).ppt_第3頁
順序分支結(jié)構(gòu).ppt_第4頁
順序分支結(jié)構(gòu).ppt_第5頁
已閱讀5頁,還剩23頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第,章,4,分 支 結(jié) 構(gòu),語句概述,問題的引出,if語句的嵌套,switch語句,if語句,語句可以分為五大類: 1. 表達式語句: 表達式的后面加一個分號 賦值語句 自加減運算符構(gòu)成的表達式語句 逗號表達式語句 2. 空語句: 只有一個分號,作為語句結(jié)束符 3復合語句:由和把一些變量說明和 語句組合在一起 ,又稱語句塊。如: int a=0,b=1,sum; sum=a+b; printf(%d,sum); ,第,章,4,分 支 結(jié) 構(gòu),函數(shù)調(diào)用語句:由一個函數(shù)調(diào)用加上一 個 分號組成,如: printf(This is a function call); 5. 控制語句,共有9種,即:

2、if語句 switch語句 while語句 do-while語句 for語句 break語句 continue語句 goto語句 return語句,語句概述,問題的引出,if語句的嵌套,switch語句,if語句,第,章,4,分 支 結(jié) 構(gòu),【例4.1】有三個電阻并聯(lián),其阻值分別為 10、20、50,求并聯(lián)后的電阻。 #include stdio.h main() float r,r1,r2,r3;執(zhí)行順序 r1=10; r2=20; r3=50; r=1/(1/r1+1/r2+1/r3); /*注意別忘了括號*/ printf(并聯(lián)電阻r=%8.2fn,r); 運行結(jié)果: 并聯(lián)電阻r= 5.

3、88,執(zhí)行順序,語句概述,問題的引出,if語句的嵌套,switch語句,if語句,第,章,4,分 支 結(jié) 構(gòu),此結(jié)構(gòu)屬于順序結(jié)構(gòu),程序自上而下執(zhí)行時 程序中的每一個語句都被執(zhí)行一次,而且只能被執(zhí)行一次。 C語言提供兩種分支判斷語句: If語句 switch語句,語句概述,問題的引出,if語句的嵌套,switch語句,if語句,第,章,4,分 支 結(jié) 構(gòu),4.3.1 if語句的一般形式,4.3.2 ifelse中的語句可以是復合語句,4.3 if語句,4.3.3 if語句的缺省形式,4.3.4 條件表達式較復雜的情況,4.3.5 條件表達式未必一定是關(guān)系或邏 輯表達式,4.3.6 同一個條件可以

4、有多種表達方式,語句概述,問題的引出,if語句的嵌套,switch語句,if語句,第,章,4,分 支 結(jié) 構(gòu),if語句的一般形式: if () else 注:內(nèi)的表示是可選的 。,語句概述,問題的引出,if語句的嵌套,switch語句,if語句,第,章,4,分 支 結(jié) 構(gòu),【例4.2】請輸入兩個數(shù)a,b,比較a+b和 ab的大小,輸出大者。 #include main() int a,b,s1,s2; coutab; s1=a+b; /*兩個數(shù)的和*/ s2=a*b; /*兩個數(shù)的積*/ if (s1s2) couta與b的和大于a與b的積 n; /* 語句A*/ else couta與b的積

5、大于等于a與b的和n; /* 語句B*/ ,語句概述,問題的引出,if語句的嵌套,switch語句,if語句,第,章,4,分 支 結(jié) 構(gòu),運行結(jié)果為: 請輸入兩個整數(shù):2,3 a與b的積大于等于a與b的和 程序執(zhí)行的過程: 比較兩數(shù)的和與積, 如果s1s2,執(zhí)行語句A, 否則,就跳過語句A執(zhí)行語句B,語句概述,問題的引出,if語句的嵌套,switch語句,if語句,第,章,4,分 支 結(jié) 構(gòu),【例4.3】已知實數(shù)a,b,計算u=(r+s)2, v=(r+s)3的值。 #include stdio.h main() float a,b,u,v,s,r; printf(請輸入實數(shù)a,b:); sc

6、anf(%f%f, ,A,B,語句概述,問題的引出,if語句的嵌套,switch語句,if語句,第,章,4,分 支 結(jié) 構(gòu),運行結(jié)果: 請輸入實數(shù)a,b:5.0 6.0 u=103.361115,v=-1050.838013 若ab條件成立,執(zhí)行的順序是 AC, 否則執(zhí)行的順序是 BC。,語句概述,問題的引出,if語句的嵌套,switch語句,if語句,第,章,4,分 支 結(jié) 構(gòu),【注意】 (1)if后面的一定要有括號 (2)if和else同屬于一個if語句, 程序中不可以沒有if而只有else (3)if語句與else語句不可能同時執(zhí)行 (4)如果和是非復合語句 那么該語句一定要以分號結(jié)束

7、(5)if語句的表達式可以是任意類型的 C語言的合法的表達式,語句概述,問題的引出,if語句的嵌套,switch語句,if語句,第,章,4,分 支 結(jié) 構(gòu),缺省條件語句形式: if () 執(zhí)行過程:如果的值不為零, 執(zhí)行,否則什么也不執(zhí)行,跳 到if語句的下面,繼續(xù)執(zhí)行程序中的其 它語句。缺省else時的條件分支語句, 也 經(jīng)常使用。,語句概述,問題的引出,if語句的嵌套,switch語句,if語句,第,章,4,分 支 結(jié) 構(gòu),【例4.4】輸入三角形的三個邊長,求出三角形的面積。 #include math.h main() float a,b,c; float area,s; /*s為三角形

8、的半周長*/ printf(請輸入三角形的三邊a,b,c:); scanf(%f%f%f, ,語句概述,問題的引出,if語句的嵌套,switch語句,if語句,第,章,4,分 支 結(jié) 構(gòu),運行結(jié)果: 請輸入三角形的三邊a,b,c:3 4 5 三角形面積area=6.000000 三角形構(gòu)成條件: 任意兩邊之和大于第三邊,由if語句判斷條件的成立,語句概述,問題的引出,if語句的嵌套,switch語句,if語句,第,章,4,分 支 結(jié) 構(gòu),【例4.5】判斷某一年是否為閏年。 判斷閏年的條件: 能被4整除,但不能被100整除 或 能被400整除 程序: #include stdio.h main(

9、) int year; scanf(%d, ,語句概述,問題的引出,if語句的嵌套,switch語句,if語句,第,章,4,分 支 結(jié) 構(gòu),【例4.6】 #include stdio.h main() int s; if (s=2) printf(hello); else printf(error); 相當于if(2)printf(hello);,這是合法的 !,語句概述,問題的引出,if語句的嵌套,switch語句,if語句,第,章,4,分 支 結(jié) 構(gòu),【例4.7】 #include stdio.h main() int x,y; scanf(%d, ,語句概述,問題的引出,if語句的嵌套,

10、switch語句,if語句,第,章,4,分 支 結(jié) 構(gòu),把if(x)改成if(x!=0),其功能相同。 下面兩種表示方法經(jīng)常使用: if(x) 等價于 if(x!=0) if(!x) 等價于 if(x=0),語句概述,問題的引出,if語句的嵌套,switch語句,if語句,第,章,4,分 支 結(jié) 構(gòu),4.4.1 嵌套的引出,4.4.2 流程圖,4.4 if語句的嵌套,4.4.3 if與else的配對規(guī)則,4.4.4 嵌套舉例,語句概述,問題的引出,if語句的嵌套,switch語句,if語句,第,章,4,分 支 結(jié) 構(gòu),【例4.8】輸入a,b兩個數(shù),比較并輸出結(jié)果。 #include stdio

11、.h main() int a,b; printf(請輸入a,b:); scanf(%d%d, ,一個完整的if語句,語句概述,問題的引出,if語句的嵌套,switch語句,if語句,第,章,4,分 支 結(jié) 構(gòu),程序中供選擇的情況多于兩個時使用兩個以上if語句來進行判斷。 if語句的嵌套:在一個if語句中 包含另一個if語句 內(nèi)嵌的if語句既可以嵌套在if子句中, 也可以嵌套在else子句中。,語句概述,問題的引出,if語句的嵌套,switch語句,if語句,第,章,4,分 支 結(jié) 構(gòu),語句概述,問題的引出,if語句的嵌套,switch語句,if語句,第,章,4,分 支 結(jié) 構(gòu),【例4.9】寫

12、出下列程序的輸出結(jié)果。 #include stdio.h main() int x=4,y=5,z=2,max; max=x; if(zy) if(zx) max=z; else if(yx) max=y; printf(max=%d,max); 運行結(jié)果: max=4,語句概述,問題的引出,if語句的嵌套,switch語句,if語句,第,章,4,分 支 結(jié) 構(gòu),【例4.10】解方程:ax2+bx+c=0。 程序見課本P29,流程圖如下圖: 從代數(shù)知識可以知道: 若b2-4ac0 有兩個不等的實根 若b2-4ac=0 有兩個相等的實根 若b2-4ac0 有兩個虛根,語句概述,問題的引出,if語

13、句的嵌套,switch語句,if語句,第,章,4,分 支 結(jié) 構(gòu),流程圖:,語句概述,問題的引出,if語句的嵌套,switch語句,if語句,第,章,4,分 支 結(jié) 構(gòu),switch語句的一般形式是: switch () case : case : : : case : default: ,語句概述,問題的引出,if語句的嵌套,switch語句,if語句,第,章,4,分 支 結(jié) 構(gòu),【例4.11】模擬計數(shù)器的功能。 #include stdio.h main() float x, y; /*存放兩個運算分量*/ char operator; /*存放運算符*/ printf(輸入x,運算符和y:); scanf(%f%c%f,

溫馨提示

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

評論

0/150

提交評論