第四章分支結(jié)構(gòu)程序設(shè)計總結(jié)_第1頁
第四章分支結(jié)構(gòu)程序設(shè)計總結(jié)_第2頁
第四章分支結(jié)構(gòu)程序設(shè)計總結(jié)_第3頁
第四章分支結(jié)構(gòu)程序設(shè)計總結(jié)_第4頁
第四章分支結(jié)構(gòu)程序設(shè)計總結(jié)_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第四章分?結(jié)構(gòu)程序設(shè)計總結(jié)計算機在執(zhí)?程序時,通常都是按照語句的書寫順序執(zhí)?,但在許多情況下需要根據(jù)條件選擇所要執(zhí)?的語句,這就要?到分?結(jié)構(gòu)。在c語?中?于實現(xiàn)分?結(jié)構(gòu)控制的語句主要有if,switch語句。【引例4.1】[例4.2】編寫程序,輸?x的值按以下分段函數(shù)計算并輸出y的值y=f(x)=1/xx≠00x=04.2關(guān)系運算符,邏輯運算符,條件運算符1.關(guān)系運算符關(guān)系運算符?于判斷兩個操作數(shù)的??關(guān)系。在c語?中有6個關(guān)系運算符如表4.1運算符含義>?于>=?于等于?于<<=?于等于等于==!=不等于注意(1)關(guān)系運算符都是雙?運算符,其結(jié)合?向是左結(jié)合(2)關(guān)系運算符的優(yōu)先級低于算術(shù)運算符,但是?于賦值運算符(3)關(guān)系運算符中><,>=,<=的優(yōu)先級相同==,!=的優(yōu)先級相同,前者的優(yōu)先級?于后者,即>=的優(yōu)先級?于==2.關(guān)系表達式?關(guān)系運算符將兩個表達式連接起來的式?稱為關(guān)系表達式。關(guān)系表達式的?般形式為:表達式1關(guān)系運算符表達式2功能:?較?個表達式的??,返回?個邏輯值。例如:a+b>=c-d.x<=3/2,a+1!=c-i-5*j==k+1都是符合關(guān)系表達式關(guān)系表達式中允許嵌套的情況例如:a>(b=0)但是不能寫成a>b=0的形式。因為關(guān)系運算符的優(yōu)先級?于賦值運算符,表達式a>b=0相當(dāng)于(a>b)=0賦值運算符左邊不是變量,會出現(xiàn)編譯錯誤。關(guān)系表達式主要?于分?結(jié)構(gòu)中的條件判斷。關(guān)系表達式的結(jié)果是?個邏輯值真或假由于c語?中沒有邏輯類的數(shù)據(jù),因此?1表?為真0表?為假?!纠?.3】4.2.2邏輯運算符和邏輯表達式關(guān)系表達式只能描述單?的條件。對于較復(fù)雜的復(fù)合條件,例如x?于10且x?于4如果?關(guān)系表達式4<x<10來描述,則當(dāng)x=2時,由于關(guān)系運算符是左結(jié)合的,因此先計算4<x,其值為0;然后在計算0<10其值為1;即說明當(dāng)x=2時滿?關(guān)系4<x<10很顯然是錯誤的。邏輯運算符4.2運算符名稱!&&||邏輯?右結(jié)合邏輯與左結(jié)合邏輯或左結(jié)合結(jié)合性優(yōu)先級??底注:與運算符&&和或運算符||都是雙?運算符,?運算符!為單?運算符。2.邏輯表達式?邏輯運算符將兩個表達式鏈接起來的叫做邏輯表達式。?班形式為:表達式1邏輯運算符表達式24.3邏輯運算的真值表xy!x1100x&&yx||y00000010?01?0?001?01關(guān)于邏輯表達式的說明:(1)參與邏輯運算符的數(shù)據(jù)可以是1和0,也可以是?零值和0,還可以是任何類型的數(shù)據(jù),但,但最終都是以?0和0來判斷他們是真或假(2)在邏輯表達式中也可以使?賦值運算符,如a&&(b=0),但是不能寫成a&&b=0的形式。因為邏輯運算符的優(yōu)先級?于賦值運算符,賦值運算符左邊不是變量。(3)c語?規(guī)定,只對決定整個表達式值所需的最少數(shù)?的?表達式進?運算。①對于邏輯與(&&)運算,若&&左邊的表達式的值為真,則可以得出個表達式的值為假,那么&&右邊的表達式將不再進?計算;只有當(dāng)||左邊的表達式值為假時才能計算右邊表達式的值?!?.5】邏輯運算?例算術(shù)運算符,關(guān)系運算符及邏輯運算符的優(yōu)先級從?到低的順序如表4.4所?全部運算符的優(yōu)先級和結(jié)合性見附錄B運算符!算術(shù)運算符關(guān)系運算符&&和||邏輯運算符結(jié)合性優(yōu)先級右結(jié)合?到低右結(jié)合?到低左結(jié)合?到低左結(jié)合?到低右結(jié)合?到低邏輯運算符舉例:①ch是英?字母。邏輯表達式(ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z')②a,b不同時為0.邏輯表達式!(a==0&&b==0)或a!=0||b!=0或a||b③ch是空格或回車。邏輯表達式(ch==''||(ch=='\n'))④year是閏年,即year能被4整除但不能被100整除或year能被400整除。邏輯表達式為(year%4==0&&year%100!==0)||(year%400=0)4.2.3條件運算符和條件表達式1.條件運算符條件運算符由“?”和“:”?個符合組成,?于條件求值,它是?個三?運算符,需要三個操作數(shù)。條件運算符的優(yōu)先級低于邏輯運算符,?于賦值運算符,它是右結(jié)合。2.條件表達式由條件運算符將3個表達式連接起來的式?稱為條件表達式。?般形式為:表達式1?表達式2:表達式3條件表達式的執(zhí)?順序是:先計算表達式1的值,若值為?0,表達式為真,則將表達式2的值作為整個條件表達式的值,否則將表達式3的值作為整個條件表達式的值。關(guān)于條件表達式的說明(1)條件表達式中1的類型可以與表達式2和表達式3不同,表達式2和表達式3也可以不同,此時系統(tǒng)會?動進?轉(zhuǎn)換,結(jié)果為表達式2和表達式3中級別類型較?的,并將其作為條件表達式的類型。例如條件表達式“'a'?1:2.0"的結(jié)果為double型的1.0(2)條件表達式中表達式2和表達式3不僅可以是數(shù)值表達式,還可以是賦值表達式或函數(shù)表達式。(3)條件表達式允許嵌套?!纠?.6】?條件表達式求兩個數(shù)值中較?的數(shù)4.3使?if-else實現(xiàn)分?結(jié)果1.if-else語句雙分?語句if(表達式)語句1:else語句2:【例4.7】使?雙分?if語句求兩個數(shù)中較?的數(shù)【例4.8】編寫?個程序,根據(jù)鍵盤輸?的x值,計算y值y=(fx)=e^xx<=1x^2-1x>1使?雙分?語句可以?條件表達式替換。當(dāng)if語句中只給了同?個變量賦值時,可以使?條件表達式代替if語句。2.單分?if語句其?般形式為:if(表達式)語句:【例4.9】編寫程序任意輸??個實數(shù),輸出其絕對值【4.10】諾有有如下分段函數(shù),根據(jù)x的值求y的值y=f(x)=1x≠0-1x=0【例4.11】輸?3個實數(shù),要求按從?到到的順序輸出4.3.2if語句的嵌套使?if語句的基本形式解決分?少于兩個的問題?分?便,?經(jīng)常遇到的是多于兩個分?,或者需要在多個不同條件下執(zhí)?不同的語句問題,這就需要掌握if語句的嵌套以及多分?結(jié)構(gòu)。?個if語句中?包含?個或多個if語句的現(xiàn)象稱為if語句的嵌套。其if基本形式為:if(表達式)語句1;else語句2;其中語句1或語句2都可以嵌套另?個if語句,在缺省else部分的if語句中的語句也可以嵌套另?個if語句。因此,具體嵌套形式可以有很多種。如if(表達式1)if(表達式2)語句1;else語句2;else語句2嵌套的if語句if(表達式3)語句3;else語句4其執(zhí)?流程如4.3所?【例4.12】輸?3個任意整數(shù),找出其中的最?值【例4.13】編寫程序輸??個x值按以下函數(shù)計算并輸出y的值y=1,x>00,x=0-1,x<04.3.3多分?if語句多分?語句是最常?的實現(xiàn)多路分?的?法,其?般形式為if(表達式1)語句1;elseif(表達式2)語句2;...elseif(n-1)語句n-1;else語句n執(zhí)?流程如圖4.5所?【例4.14】編寫程序輸?x的值輸出y的值y=2xx<27-3x2≤x≤101-cosxx>10【例4.15】4.4使?switch語句實現(xiàn)分?結(jié)構(gòu)swit(表達式)case常量表達式1:語句1:brark;case常量表達式2:語句2;break;...case常量表達式n:語句n;break;default:語句n+1;break;switch語句分?結(jié)構(gòu)執(zhí)?流程圖如圖4.6所?關(guān)于switch語句的?點說明:(1)switch后表達式可以是任何表達式,其值只能為整型,字符型,枚舉型。(2)每個case后?的常量表達式的值互相不相同,否則就會出現(xiàn)相互?盾的現(xiàn)象(3)各個case和default的出現(xiàn)次序不影響結(jié)果(4)可以讓多個case共??組執(zhí)?語句(5)switch語句允許嵌套使?(要點)1.在switch語句格式中的每?個語句后?都使?break語句【例4.16】編寫程序,輸??個?分值,輸出該?份是第?季度2.在switch語句中格式中的部分語句后?使?break語句【例4.17】根據(jù)鍵盤輸?的年,?,輸出該年,該?的天數(shù)【例4.18】使?switch語句編寫4.14的程序[例4.19】編寫程序輸?x計算分段函數(shù)f(x)的值保留2位?數(shù)要求調(diào)?sqrt函數(shù)求平?

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論