謝麗聰老師C語(yǔ)言課件-5分支結(jié)構(gòu)程序(2)-2009_第1頁(yè)
謝麗聰老師C語(yǔ)言課件-5分支結(jié)構(gòu)程序(2)-2009_第2頁(yè)
謝麗聰老師C語(yǔ)言課件-5分支結(jié)構(gòu)程序(2)-2009_第3頁(yè)
謝麗聰老師C語(yǔ)言課件-5分支結(jié)構(gòu)程序(2)-2009_第4頁(yè)
謝麗聰老師C語(yǔ)言課件-5分支結(jié)構(gòu)程序(2)-2009_第5頁(yè)
已閱讀5頁(yè),還剩29頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第五章 分支結(jié)構(gòu)程序設(shè)計(jì),5.1 關(guān)系運(yùn)算符和表達(dá)式 5.2 邏輯運(yùn)算符和表達(dá)式 5.3 邏輯表達(dá)式的跳躍 5.4 if語(yǔ)句 5.5 switch語(yǔ)句,5.1 關(guān)系表達(dá)式,由關(guān)系運(yùn)算符、圓括號(hào)把兩個(gè)表達(dá)式連接起來(lái)的式子。 表示條件 若所表示的條件成立、則其值為1(非0)、否則其值為0。 關(guān)系運(yùn)算符:、=、=、!= 例: a=2 、39 、a != ( a=8 ) 、 x+(y=3)=k*z 、(a!=3)(kl),97,8,表達(dá)式 值為1,優(yōu)先,成立為1 不成立為0,非=,注意:數(shù)學(xué)中多個(gè)條件,例 abcd 應(yīng)表示為 ab a=b=c=0; + +a|+ +b 后a、b值分別為0、6,a=1

2、停止不算,值為 0 賦給a, 停止不算,3、執(zhí)行 int a,b,c;a=b=c= - 1; + +a 后a、b、c值分別為0、-1、0,1,a=0,2,不算,值為0,3,c=0,4,整體為0,例1:,main() char c=k; int i=1,j=2,k=3; float x=3e+5,y=0.85; printf(%d,%dn,!x*!y,!x); printf(%d,%dn,x|i 運(yùn)行結(jié)果:0,0 1,0 0,1,0,X為非0,為非0,后面不算,為0,后面不算,5.4 選擇結(jié)構(gòu)(if 語(yǔ)句),5.4.1 if語(yǔ)句的三種形式 1、第一種形式為基本形式: if if(表達(dá)式) 語(yǔ)句

3、語(yǔ)義:如果表達(dá)式的值為真,則執(zhí)行其后的語(yǔ)句,否則不執(zhí)行該語(yǔ)句。其過程可表示為下圖。,表達(dá)式可以是任意合法表達(dá)式,后面不能加;,例2:void main() int a,b,max; printf(n input two numbers: ); scanf(%d %d, 輸入:23 46 輸出:max=46,此語(yǔ)句用于提示輸入,max=23,max=46,例3:void main() int a,b,c,t; printf(n input two numbers: ); scanf(%d %d %d , 輸入:1 6 2 輸出:6 2 1,實(shí)現(xiàn)數(shù)的互換,功能:輸入三個(gè)數(shù),按照從大到小順序輸出,例

4、4:從鍵盤輸入一個(gè)字符,判斷它是否小寫字母。若是,將其轉(zhuǎn)換成大寫字母,否則不進(jìn)行轉(zhuǎn)換,作后輸出該字母。 #include main() char c,a; c=getchar(); if(c=z ) a=c; /*判斷非小寫字母情況*/ if(c=a) a=c-32; *判斷是否是小寫字母情況*/ printf(%cn,a); ,main() char c; c=getchar(); if(c=a)c-=32; printf(%cn,c);,2、第二種形式為: if-else if(表達(dá)式) 語(yǔ)句1; else 語(yǔ)句2; 語(yǔ)義:如果表達(dá)式的值為真,則執(zhí)行語(yǔ)句1,否則執(zhí)行語(yǔ)句2 。,后面不能加;

5、,void main() int a, b; printf(input two numbers: ); scanf(%d %d, 輸入:23 46 輸出:max=46,輸入兩個(gè)整數(shù),輸出其中大數(shù),例2的改寫,3、第三種形式為if-else-if形式: if(表達(dá)式1) 語(yǔ)句1; else if(表達(dá)式2) 語(yǔ)句2; else if(表達(dá)式3) 語(yǔ)句3; else if(表達(dá)式m) 語(yǔ)句m; else 語(yǔ)句n;,語(yǔ)義: 依次判斷表達(dá)式的值,當(dāng)出現(xiàn)某個(gè)值為真時(shí),則執(zhí)行其對(duì)應(yīng)的語(yǔ)句。然后跳到整個(gè)if語(yǔ)句之外繼續(xù)執(zhí)行程序。 如果所有的表達(dá)式均為假,則執(zhí)行語(yǔ)句n。然后繼續(xù)執(zhí)行后續(xù)程序。,后面不能加;,此

6、為真,做語(yǔ)句1,其它語(yǔ)句都不做,上面的語(yǔ)句為以下三種格式: 1、空語(yǔ)句 2、一個(gè)語(yǔ)句(不引起轉(zhuǎn)移) 3、前后加大括號(hào)的語(yǔ)句(復(fù)合語(yǔ)句),也叫程序段,如: int a; float b; a=3; b=7.0;,;,允許在復(fù)合語(yǔ)句前部定義變量,只能在復(fù)合語(yǔ)句中使用,int a; a=3; float b; b=7.0;,變量要在最前面定義,不能寫成,#includestdio.h void main() 輸入:A char c; 輸出:This is a capital letter c=getchar(); if(c=0 ,例5,4、在使用if語(yǔ)句中應(yīng)注意以下問題: 1)在三種形式的if語(yǔ)句中

7、,在if之后均為表達(dá)式。 該表達(dá)式通常是邏輯表達(dá)式或關(guān)系表達(dá)式, 但也可以是其它表達(dá)式,如賦值表達(dá)式等,甚至也可以是一個(gè)變量。 例如: if(a=5) 語(yǔ)句; if(b) 語(yǔ)句; 都是允許的。只要表達(dá)式的值為非0,即為“真”。 如在: if(a=5); 中表達(dá)式的值永遠(yuǎn)為非0,所以其后的語(yǔ)句總是要執(zhí)行的,當(dāng)然這種情況在程序中不一定會(huì)出現(xiàn),但在語(yǔ)法上是合法的。,又如,有程序段: if(a=b) printf(%d,a); else printf(a=0); 本語(yǔ)句的語(yǔ)義是,把b值賦予a,如為非0則輸出該值,否則輸出“a=0”字符串。這種用法在程序中是經(jīng)常出現(xiàn)的。,=為賦值運(yùn)算符,比較運(yùn)算符為=,

8、2)在if語(yǔ)句中,條件判斷表達(dá)式必須用括號(hào)括起來(lái),在語(yǔ)句之后必須加分號(hào)。 3)在if語(yǔ)句的三種形式中,所有的語(yǔ)句應(yīng)為單個(gè)語(yǔ)句,如果要想在滿足條件時(shí)執(zhí)行一組(多個(gè))語(yǔ)句,則必須把這一組語(yǔ)句用括起來(lái)組成一個(gè)復(fù)合語(yǔ)句。但要注意的是在之后不能再加分號(hào)。 例如: if(ab) a+;b+; else a=0;b=10;,if(ab) a+;b+;; else a=0;b=10;;,不能寫成,5.4.2 條件運(yùn)算符和條件表達(dá)式,在條件語(yǔ)句中,只執(zhí)行單個(gè)的賦值語(yǔ)句時(shí),可使用條件表達(dá)式來(lái)實(shí)現(xiàn)。 條件運(yùn)算符為?和:,它是一個(gè)三目運(yùn)算符,即有三個(gè)參與運(yùn)算的量。 條件表達(dá)式的一般形式為: 表達(dá)式1? 表達(dá)式2 :

9、表達(dá)式3 求值規(guī)則為:如果表達(dá)式1的值為真,則以表達(dá)式2 的值作為條件表達(dá)式的值,否則以表達(dá)式2的值作為整個(gè)條件表達(dá)式的值。,非 0,0,例如條件語(yǔ)句: if(ab) max=a; else max=b; 可用條件表達(dá)式寫為: max=(ab)?a:b; 執(zhí)行該語(yǔ)句的語(yǔ)義是: 如ab為真,則把a(bǔ)賦予max, 如ab為假,則把b 賦予max。,使用條件表達(dá)式時(shí),還應(yīng)注意以下幾點(diǎn): 1)條件運(yùn)算符的運(yùn)算優(yōu)先級(jí)低于關(guān)系運(yùn)算符和 算術(shù)運(yùn)算符,但高于賦值符。 因此:max=(ab)?a:b 可以去掉括號(hào)而寫為 max=ab?a:b 2)條件運(yùn)算符?和:是一對(duì)運(yùn)算符,不能分開 單獨(dú)使用。 3)條件運(yùn)算符的

10、結(jié)合方向是自右至左。 例如:ab?a:cd?c:d 應(yīng)理解為 ab?a:(cd?c:d) 這也就是條件表達(dá)式嵌套的情形,即其中的表達(dá)式3又是一個(gè)條件表達(dá)式。,例6:計(jì)算,方法一: void main( ) float x,y; scanf (”%f ”, ,表達(dá)式,成立值為1,y=x3 ? x*x+2 : 3*x+7*x*x;,例7:從鍵盤輸入任意的兩個(gè)實(shí)數(shù),按從小到大順序輸出這兩個(gè)數(shù),請(qǐng)編程實(shí)現(xiàn)。 void main( ) float a,b; scanf (”%f%f ”,代替,復(fù)合語(yǔ)句可以定義變量,a=a+b;b=a-b;a=a-b t=a;a=b;b=t,例8:P105 5.5 計(jì)算,方法一: main( ) float x,y; scanf (”%f ”,1=x scanf (”%f ”, , 、 可省略,y= x1? x :( x10 ? 2*x-1 : 3*x-11);,(、)可省略,方法三:,if (x10) if (x1) y=x; else y=2*x-1; else y=3*x-11;, 后不能加;, 、

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論