C程序的流程控制教材課件_第1頁(yè)
C程序的流程控制教材課件_第2頁(yè)
C程序的流程控制教材課件_第3頁(yè)
C程序的流程控制教材課件_第4頁(yè)
C程序的流程控制教材課件_第5頁(yè)
已閱讀5頁(yè),還剩81頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第三章C程序的流程控制

第三章C程序的流程控制C語(yǔ)言的結(jié)構(gòu)C語(yǔ)言的三大結(jié)構(gòu):順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)S1S2S3(a)順序結(jié)構(gòu)

PS1S2真假(b)選擇結(jié)構(gòu)

PS2假真(c)循環(huán)結(jié)構(gòu)

C語(yǔ)言的結(jié)構(gòu)C語(yǔ)言的三大結(jié)構(gòu):順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)S本章內(nèi)容提要判斷選擇型程序設(shè)計(jì)

3.13.2循環(huán)型程序設(shè)計(jì)

3.3綜合應(yīng)用

3.4本章小結(jié)

3.5思考題

3.6本章內(nèi)容提要判斷選擇型程序設(shè)計(jì)3.13.2循環(huán)型程序設(shè)計(jì)本節(jié)知識(shí)點(diǎn)C語(yǔ)言中的邏輯值1關(guān)系運(yùn)算符與關(guān)系表達(dá)式2邏輯運(yùn)算符與邏輯表達(dá)式3if…else結(jié)構(gòu)的應(yīng)用4if-elseif結(jié)構(gòu)的應(yīng)用5if語(yǔ)句的嵌套應(yīng)用6重點(diǎn)關(guān)系和邏輯運(yùn)算1if語(yǔ)句的應(yīng)用2難點(diǎn)本節(jié)知識(shí)點(diǎn)C語(yǔ)言中的邏輯值1關(guān)系運(yùn)算符與關(guān)系表達(dá)式2邏輯運(yùn)算前面學(xué)過的運(yùn)算符和表達(dá)式?比較?并且?前面學(xué)過的運(yùn)算符和表達(dá)式?比較?并且?判斷是針對(duì)命題的“真”、“假”進(jìn)行的。3.1.1命題的“真”、“假”與C語(yǔ)言中的邏輯值例如,下面一些命題:1、小強(qiáng)是個(gè)大學(xué)生2、今天下雨了3、a≥34、a≥b≥c5、a≥5或c≥4關(guān)系表達(dá)式和邏輯表達(dá)式是C語(yǔ)言中描述命題的兩種基本形式判斷是針對(duì)命題的“真”、“假”進(jìn)行的。3.1.1命題的“關(guān)系運(yùn)算是邏輯運(yùn)算中比較簡(jiǎn)單的一種,“關(guān)系運(yùn)算”就是“比較運(yùn)算”,指對(duì)兩個(gè)表達(dá)式值的大小比較。3.1.2關(guān)系運(yùn)算符C語(yǔ)言中提供有如下6個(gè)關(guān)系運(yùn)算符:

<,<=,

>,>=,==,!=例3.1

a>3inta=5;inta=2;結(jié)果為真(True)結(jié)果為假(False)關(guān)系運(yùn)算是邏輯運(yùn)算中比較簡(jiǎn)單的一種,“關(guān)系運(yùn)算”就是“3.13.1.2關(guān)系表達(dá)式用關(guān)系運(yùn)算符將兩個(gè)表達(dá)式(算術(shù)、關(guān)系、邏輯、賦值表達(dá)式等)連接起來所構(gòu)成的表達(dá)式,稱為關(guān)系表達(dá)式。例3.2:

c>a+b

a>b==c

a==b<c

a=b>c

等效于c>(a+b)等效于(a>b)==c等效于a==(b<c)等效于a=(b>c)3.1.2關(guān)系表達(dá)式用關(guān)系運(yùn)算符將兩個(gè)表達(dá)式(算術(shù)1、表達(dá)式5>2>7>8在數(shù)學(xué)上允許否?在C中是否允許?關(guān)系表達(dá)式注意問題:按自左而右的結(jié)合求解:①5>2值為1;②1>7值為0;③0>8的值為0。即整個(gè)關(guān)系表達(dá)式的值為0。1、表達(dá)式5>2>7>8在數(shù)學(xué)上允許否?在C中是否允許?關(guān)系2、由于關(guān)系表達(dá)式的值是整型數(shù)0或1,故也可以將其看成是一種整型表達(dá)式。例如,若有:

inti=1,j=7,a;a=i+(j%4!=0);關(guān)系表達(dá)式注意問題:這種表達(dá)式的含義不易被理解,初學(xué)時(shí)不宜多用2、由于關(guān)系表達(dá)式的值是整型數(shù)0或1,故也可以將其關(guān)系表達(dá)式3、在判定兩個(gè)浮點(diǎn)數(shù)是否相等時(shí),由于存儲(chǔ)上的誤差,會(huì)得出錯(cuò)誤的結(jié)果。例如:

1.0/3.0*3.0==1.0關(guān)系表達(dá)式注意問題:該關(guān)系表達(dá)式的值為0(假),并不為1(真)。所以應(yīng)避免對(duì)兩個(gè)實(shí)數(shù)表達(dá)式作“相等”或“不相等”的判別。上式可改寫為:

fabs(1.0/3.0*3.0-1.0)<1e-5fabs是求絕對(duì)值函數(shù)。只要1.0/3.0*3.0與1.0之間的差小于10-5(或一個(gè)其它的很小的數(shù)),就認(rèn)為1.0/3.0*3.0與1.0相等。3、在判定兩個(gè)浮點(diǎn)數(shù)是否相等時(shí),由于存儲(chǔ)上的誤差,會(huì)關(guān)系表達(dá)4、要表示x在區(qū)間[a,b]中,在數(shù)學(xué)中使用表達(dá)式a≤x≤b可否?在C語(yǔ)言中使用表達(dá)式“a<=x<=b”可否?關(guān)系表達(dá)式注意問題:假設(shè)a=0;b=0.5。若x=0.3上式可改寫為:

a<=x并且x<=b4、要表示x在區(qū)間[a,b]中,在數(shù)學(xué)中使用表達(dá)式a≤x≤b3.1.3邏輯運(yùn)算符與邏輯表達(dá)式ABBAA(a)“與”

(b)“或”

(c)“非”

三個(gè)基本邏輯運(yùn)算

3.1.3邏輯運(yùn)算符與邏輯表達(dá)式ABBAA(a)“與”3.1.3邏輯運(yùn)算符C語(yǔ)言提供三種邏輯運(yùn)算符:1、&&

邏輯與(相當(dāng)日常生活中:而且,并且,只在兩條件同時(shí)成立時(shí)為“真”)2、||

邏輯或(相當(dāng)日常生活中:或,兩個(gè)條件只要有一個(gè)成立時(shí)即為“真”)3、!邏輯非(條件為真,運(yùn)算后為假,條件為假,運(yùn)算后為真)3.1.3邏輯運(yùn)算符C語(yǔ)言提供三種邏輯運(yùn)算符:1、&&3.1.3邏輯表達(dá)式用邏輯運(yùn)算符(邏輯與、邏輯或、邏輯非)將關(guān)系表達(dá)式或邏輯量連接起來構(gòu)成邏輯表達(dá)式。例3.3:

a>b&&x>ya==b||x==y

!a||a>b

等效于(a>b)&&(x>y)等效于(a==b)||(x==y)等效于(!a)||(a>b)3.1.3邏輯表達(dá)式用邏輯運(yùn)算符(邏輯與、邏輯或1、在邏輯表達(dá)式的求解中,并不是所有的邏輯運(yùn)算符都被執(zhí)行,只是在必須執(zhí)行下一個(gè)邏輯運(yùn)算符才能求出表達(dá)式的解時(shí),才執(zhí)行該運(yùn)算符。a&&b&&ca||b||c邏輯表達(dá)式注意問題:例3.4:如果a,b,c,d,m,n分別為:1,2,3,4,1,1分析整個(gè)表達(dá)式(m=a>b)&&(n=c>d)結(jié)果和m,n的結(jié)果。1、在邏輯表達(dá)式的求解中,并不是所有的邏輯運(yùn)算符都被執(zhí)行邏輯2、如果在一個(gè)表達(dá)式中不同位置上出現(xiàn)數(shù)值,應(yīng)區(qū)分哪些是作為數(shù)值運(yùn)算或關(guān)系運(yùn)算的對(duì)象(原值),哪些是作為邏輯運(yùn)算的對(duì)象(邏輯值)。邏輯表達(dá)式注意問題:例3.5:計(jì)算:5>3&&2||8<4-!02、如果在一個(gè)表達(dá)式中不同位置上出現(xiàn)數(shù)值,應(yīng)區(qū)分哪些是作邏輯關(guān)系和邏輯表達(dá)式應(yīng)用掌握C語(yǔ)言的關(guān)系運(yùn)算符和邏輯運(yùn)算符后,可以用一個(gè)邏輯表達(dá)式來表示一個(gè)復(fù)雜的條件。例3.6:判斷某一年是否閏年。閏年的條件是符合下面兩個(gè)條件之一:

1、能被4整除,但不能被100整除;

2、能被4整除,又能被400整除。(year%4==0&&year%100!=0)||year%400==0考慮:判斷非閏年的條件?關(guān)系和邏輯表達(dá)式應(yīng)用掌握C語(yǔ)言的關(guān)系運(yùn)算符和邏輯運(yùn)算3.2if選擇語(yǔ)句的應(yīng)用PS1S2真假選擇結(jié)構(gòu)

3.2if選擇語(yǔ)句的應(yīng)用PS1S2真假選擇結(jié)構(gòu)3.2if選擇語(yǔ)句的應(yīng)用if語(yǔ)句用來判定所給定的條件是否滿足,根據(jù)判定的結(jié)果(真或假)決定執(zhí)行給出的幾種操作之一。if語(yǔ)句

單分支結(jié)構(gòu)

雙分支結(jié)構(gòu)

多分支結(jié)構(gòu)if語(yǔ)句的嵌套3.2if選擇語(yǔ)句的應(yīng)用if語(yǔ)句用來判定所給定的條件3.2.1單分支結(jié)構(gòu)if語(yǔ)句格式:if(表達(dá)式)語(yǔ)句;

引例:如果學(xué)生成績(jī)(score)不低于60分,則輸出“合格”3.2.1單分支結(jié)構(gòu)if語(yǔ)句格式:引例:如果學(xué)生成績(jī)3.2.1雙分支結(jié)構(gòu)if語(yǔ)句

格式:if(表達(dá)式)語(yǔ)句1;else語(yǔ)句2;

引例:如果學(xué)生成績(jī)(score)不低于60分,則輸出“合格”,否則輸出“不合格”。3.2.1雙分支結(jié)構(gòu)if語(yǔ)句格式:引例:如果學(xué)生成3.2.2多分支結(jié)構(gòu)if語(yǔ)句

引例:如果學(xué)生成績(jī)(score)不低于90分,則輸出“優(yōu)秀”;如果80≤score<90,則輸出“良好”;如果70≤score<80,則輸出“中等”;如果60≤score<70,則輸出“合格”;如果score<60,則輸出“不合格”。3.2.2多分支結(jié)構(gòu)if語(yǔ)句引例:如果學(xué)生成績(jī)(sc3.2.2多分支結(jié)構(gòu)if語(yǔ)句分析一:單分支結(jié)構(gòu)if(表達(dá)式)語(yǔ)句;特點(diǎn):滿足條件即執(zhí)行語(yǔ)句程序段:if(score>=90)printf(“優(yōu)秀”)if(score>=80&&score<90)printf(“良好”)if(score>=70&&score<80)printf(“中等”)if(score>=60&&score<70)printf(“合格”)if(score<60)printf(“不合格”)缺點(diǎn):條件表達(dá)式復(fù)雜且if語(yǔ)句過多3.2.2多分支結(jié)構(gòu)if語(yǔ)句分析一:if(表達(dá)式)語(yǔ)3.2.2多分支結(jié)構(gòu)if語(yǔ)句分析二:雙分支結(jié)構(gòu)可以實(shí)現(xiàn)不?3.2.2多分支結(jié)構(gòu)if語(yǔ)句分析二:雙分支結(jié)構(gòu)可以實(shí)現(xiàn)3.2.2多分支結(jié)構(gòu)if-elseif語(yǔ)句分析三:多分支結(jié)構(gòu)格式:

if(表達(dá)式1)

語(yǔ)句1;

elseif(表達(dá)式2)

語(yǔ)句2;elseif(表達(dá)式3)

語(yǔ)句3;…elseif(表達(dá)式m)

語(yǔ)句m;else語(yǔ)句m+1;思考--如何寫程序?3.2.2多分支結(jié)構(gòu)if-elseif語(yǔ)句分析三:多有無其他方法?有無其他方法?3.2.3if語(yǔ)句的嵌套應(yīng)用在if語(yǔ)句中又包含一個(gè)或多個(gè)if語(yǔ)句稱為if語(yǔ)句的嵌套。格式為:3.2.3if語(yǔ)句的嵌套應(yīng)用在if語(yǔ)句中又包含一個(gè)或多3.2.3if語(yǔ)句的嵌套應(yīng)用如果學(xué)生成績(jī)(score)不低于90分,則輸出“優(yōu)秀”;如果80≤score<90,則輸出“良好”;如果70≤score<80,則輸出“中等”;如果60≤score<70,則輸出“合格”;如果score<60,則輸出“不合格”。3.2.3if語(yǔ)句的嵌套應(yīng)用如果學(xué)生成績(jī)(score說明:1、三種形式的if語(yǔ)句中的“表達(dá)式”一般為關(guān)系表達(dá)式或邏輯表達(dá)式,但不限于這兩種表達(dá)式。例如:if(‘a(chǎn)’)printf(“%d”,’a’);能運(yùn)行否?

說明:1、三種形式的if語(yǔ)句中的“表達(dá)式”一般為關(guān)系表達(dá)式或說明:2、else子句不能單獨(dú)使用,必須是if語(yǔ)句的一部分,與if配對(duì)使用。例如:if(‘a(chǎn)’)printf(“%c”,’a’);elseprintf(“%c”,’b’);elseprintf(“%c”,’c’);

說明:2、else子句不能單獨(dú)使用,必須是if語(yǔ)句的一部分,說明:3、在if和else后面可以只含一個(gè)內(nèi)嵌的操作語(yǔ)句,也可以有多個(gè)操作語(yǔ)句構(gòu)成的語(yǔ)句塊(復(fù)合語(yǔ)句)。語(yǔ)句塊用{

}括起來。例如:求邊長(zhǎng)分別為a,b,c的三角形面積?

if(a+b>c&&b+c>a&&c+a>b){s=0.5*(a+b+c);area=sqrt(s*(s-a)*(s-b)*(s-c));printf(area);}elseprintf(“itisnotatriangle”);說明:3、在if和else后面可以只含一個(gè)內(nèi)嵌的操作語(yǔ)句,也說明:4、if嵌套語(yǔ)句中,應(yīng)當(dāng)注意if與else的配對(duì)關(guān)系,else總是與它上面的最近的未配對(duì)的if配對(duì)。特別是if/else子句數(shù)目不一樣時(shí)本意實(shí)際說明:4、if嵌套語(yǔ)句中,應(yīng)當(dāng)注意if與else的配對(duì)關(guān)系,說明:5、if嵌套語(yǔ)句解決匹配問題方法(1)利用空語(yǔ)句使if子句數(shù)量與else子句數(shù)量相同。(2)利用{}。將沒有else子句的if語(yǔ)句用{}括起來說明:5、if嵌套語(yǔ)句解決匹配問題方法(1)利用空語(yǔ)句使if思考題一:函數(shù):-1(x<0)y=0(x=0)1(x>0)編一個(gè)程序,輸入x,輸出y。有以下幾個(gè)程序,請(qǐng)判斷哪個(gè)是正確的?思考題一:函數(shù):有以下幾個(gè)程序,請(qǐng)判斷哪個(gè)是正確的?思考題一:程序1:

main()

intx,y;

scanf("%d",&x);

if(x<0)y=-1;

elseif(x==0)y=0;

elsey=1;

printf("x=%d,y=%d\n",x,y);}思考題一:程序1:思考題一:程序2:

main()

intx,y;

scanf("%d",&x);

if(x>=0)if(x>0)y=1;

else

y=0;

else

y=-1;

printf("x=%d,y=%d\n",x,y);}思考題一:程序2:思考題一:程序3:

main()

intx,y;

scanf("%d",&x);

y=-1;

if(x!=0)

if(x>0)

y=1;

elsey=0;

printf("x=%d,y=%d\n",x,y);}思考題一:程序3:思考題一:程序4:

main()

intx,y;

scanf("%d",&x);

y=0;

if(x>=0)if(x>0)

y=1;

elsey=-1;

printf("x=%d,y=%d\n",x,y);}思考題一:程序4:思考題二:輸入兩個(gè)實(shí)數(shù),按數(shù)值由小到大的次序輸出這兩個(gè)數(shù)。輸入三個(gè)實(shí)數(shù),按數(shù)值由小到大的次序輸出這三個(gè)數(shù)。思考題二:輸入兩個(gè)實(shí)數(shù),按數(shù)值由小到大的次序輸出這兩個(gè)數(shù)。輸課堂小結(jié):關(guān)系運(yùn)算和邏輯運(yùn)算選擇結(jié)構(gòu)—if語(yǔ)句的應(yīng)用關(guān)系運(yùn)算符:<,<=,>,>=,==,!=邏輯運(yùn)算符:&&,||,!各種運(yùn)算符的優(yōu)先級(jí),表達(dá)式綜合應(yīng)用if語(yǔ)句—單分支if…else語(yǔ)句—雙分支if-elseif語(yǔ)句—多分支if語(yǔ)句的嵌套應(yīng)用if語(yǔ)句的注意問題課堂小結(jié):關(guān)系運(yùn)算和邏輯運(yùn)算選擇結(jié)構(gòu)—if語(yǔ)句的應(yīng)用關(guān)系運(yùn)算ThankyouforcomingThankyouforcoming演講完畢,謝謝觀看!演講完畢,謝謝觀看!

第三章C程序的流程控制

第三章C程序的流程控制C語(yǔ)言的結(jié)構(gòu)C語(yǔ)言的三大結(jié)構(gòu):順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)S1S2S3(a)順序結(jié)構(gòu)

PS1S2真假(b)選擇結(jié)構(gòu)

PS2假真(c)循環(huán)結(jié)構(gòu)

C語(yǔ)言的結(jié)構(gòu)C語(yǔ)言的三大結(jié)構(gòu):順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)S本章內(nèi)容提要判斷選擇型程序設(shè)計(jì)

3.13.2循環(huán)型程序設(shè)計(jì)

3.3綜合應(yīng)用

3.4本章小結(jié)

3.5思考題

3.6本章內(nèi)容提要判斷選擇型程序設(shè)計(jì)3.13.2循環(huán)型程序設(shè)計(jì)本節(jié)知識(shí)點(diǎn)C語(yǔ)言中的邏輯值1關(guān)系運(yùn)算符與關(guān)系表達(dá)式2邏輯運(yùn)算符與邏輯表達(dá)式3if…else結(jié)構(gòu)的應(yīng)用4if-elseif結(jié)構(gòu)的應(yīng)用5if語(yǔ)句的嵌套應(yīng)用6重點(diǎn)關(guān)系和邏輯運(yùn)算1if語(yǔ)句的應(yīng)用2難點(diǎn)本節(jié)知識(shí)點(diǎn)C語(yǔ)言中的邏輯值1關(guān)系運(yùn)算符與關(guān)系表達(dá)式2邏輯運(yùn)算前面學(xué)過的運(yùn)算符和表達(dá)式?比較?并且?前面學(xué)過的運(yùn)算符和表達(dá)式?比較?并且?判斷是針對(duì)命題的“真”、“假”進(jìn)行的。3.1.1命題的“真”、“假”與C語(yǔ)言中的邏輯值例如,下面一些命題:1、小強(qiáng)是個(gè)大學(xué)生2、今天下雨了3、a≥34、a≥b≥c5、a≥5或c≥4關(guān)系表達(dá)式和邏輯表達(dá)式是C語(yǔ)言中描述命題的兩種基本形式判斷是針對(duì)命題的“真”、“假”進(jìn)行的。3.1.1命題的“關(guān)系運(yùn)算是邏輯運(yùn)算中比較簡(jiǎn)單的一種,“關(guān)系運(yùn)算”就是“比較運(yùn)算”,指對(duì)兩個(gè)表達(dá)式值的大小比較。3.1.2關(guān)系運(yùn)算符C語(yǔ)言中提供有如下6個(gè)關(guān)系運(yùn)算符:

<,<=,

>,>=,==,!=例3.1

a>3inta=5;inta=2;結(jié)果為真(True)結(jié)果為假(False)關(guān)系運(yùn)算是邏輯運(yùn)算中比較簡(jiǎn)單的一種,“關(guān)系運(yùn)算”就是“3.13.1.2關(guān)系表達(dá)式用關(guān)系運(yùn)算符將兩個(gè)表達(dá)式(算術(shù)、關(guān)系、邏輯、賦值表達(dá)式等)連接起來所構(gòu)成的表達(dá)式,稱為關(guān)系表達(dá)式。例3.2:

c>a+b

a>b==c

a==b<c

a=b>c

等效于c>(a+b)等效于(a>b)==c等效于a==(b<c)等效于a=(b>c)3.1.2關(guān)系表達(dá)式用關(guān)系運(yùn)算符將兩個(gè)表達(dá)式(算術(shù)1、表達(dá)式5>2>7>8在數(shù)學(xué)上允許否?在C中是否允許?關(guān)系表達(dá)式注意問題:按自左而右的結(jié)合求解:①5>2值為1;②1>7值為0;③0>8的值為0。即整個(gè)關(guān)系表達(dá)式的值為0。1、表達(dá)式5>2>7>8在數(shù)學(xué)上允許否?在C中是否允許?關(guān)系2、由于關(guān)系表達(dá)式的值是整型數(shù)0或1,故也可以將其看成是一種整型表達(dá)式。例如,若有:

inti=1,j=7,a;a=i+(j%4!=0);關(guān)系表達(dá)式注意問題:這種表達(dá)式的含義不易被理解,初學(xué)時(shí)不宜多用2、由于關(guān)系表達(dá)式的值是整型數(shù)0或1,故也可以將其關(guān)系表達(dá)式3、在判定兩個(gè)浮點(diǎn)數(shù)是否相等時(shí),由于存儲(chǔ)上的誤差,會(huì)得出錯(cuò)誤的結(jié)果。例如:

1.0/3.0*3.0==1.0關(guān)系表達(dá)式注意問題:該關(guān)系表達(dá)式的值為0(假),并不為1(真)。所以應(yīng)避免對(duì)兩個(gè)實(shí)數(shù)表達(dá)式作“相等”或“不相等”的判別。上式可改寫為:

fabs(1.0/3.0*3.0-1.0)<1e-5fabs是求絕對(duì)值函數(shù)。只要1.0/3.0*3.0與1.0之間的差小于10-5(或一個(gè)其它的很小的數(shù)),就認(rèn)為1.0/3.0*3.0與1.0相等。3、在判定兩個(gè)浮點(diǎn)數(shù)是否相等時(shí),由于存儲(chǔ)上的誤差,會(huì)關(guān)系表達(dá)4、要表示x在區(qū)間[a,b]中,在數(shù)學(xué)中使用表達(dá)式a≤x≤b可否?在C語(yǔ)言中使用表達(dá)式“a<=x<=b”可否?關(guān)系表達(dá)式注意問題:假設(shè)a=0;b=0.5。若x=0.3上式可改寫為:

a<=x并且x<=b4、要表示x在區(qū)間[a,b]中,在數(shù)學(xué)中使用表達(dá)式a≤x≤b3.1.3邏輯運(yùn)算符與邏輯表達(dá)式ABBAA(a)“與”

(b)“或”

(c)“非”

三個(gè)基本邏輯運(yùn)算

3.1.3邏輯運(yùn)算符與邏輯表達(dá)式ABBAA(a)“與”3.1.3邏輯運(yùn)算符C語(yǔ)言提供三種邏輯運(yùn)算符:1、&&

邏輯與(相當(dāng)日常生活中:而且,并且,只在兩條件同時(shí)成立時(shí)為“真”)2、||

邏輯或(相當(dāng)日常生活中:或,兩個(gè)條件只要有一個(gè)成立時(shí)即為“真”)3、!邏輯非(條件為真,運(yùn)算后為假,條件為假,運(yùn)算后為真)3.1.3邏輯運(yùn)算符C語(yǔ)言提供三種邏輯運(yùn)算符:1、&&3.1.3邏輯表達(dá)式用邏輯運(yùn)算符(邏輯與、邏輯或、邏輯非)將關(guān)系表達(dá)式或邏輯量連接起來構(gòu)成邏輯表達(dá)式。例3.3:

a>b&&x>ya==b||x==y

!a||a>b

等效于(a>b)&&(x>y)等效于(a==b)||(x==y)等效于(!a)||(a>b)3.1.3邏輯表達(dá)式用邏輯運(yùn)算符(邏輯與、邏輯或1、在邏輯表達(dá)式的求解中,并不是所有的邏輯運(yùn)算符都被執(zhí)行,只是在必須執(zhí)行下一個(gè)邏輯運(yùn)算符才能求出表達(dá)式的解時(shí),才執(zhí)行該運(yùn)算符。a&&b&&ca||b||c邏輯表達(dá)式注意問題:例3.4:如果a,b,c,d,m,n分別為:1,2,3,4,1,1分析整個(gè)表達(dá)式(m=a>b)&&(n=c>d)結(jié)果和m,n的結(jié)果。1、在邏輯表達(dá)式的求解中,并不是所有的邏輯運(yùn)算符都被執(zhí)行邏輯2、如果在一個(gè)表達(dá)式中不同位置上出現(xiàn)數(shù)值,應(yīng)區(qū)分哪些是作為數(shù)值運(yùn)算或關(guān)系運(yùn)算的對(duì)象(原值),哪些是作為邏輯運(yùn)算的對(duì)象(邏輯值)。邏輯表達(dá)式注意問題:例3.5:計(jì)算:5>3&&2||8<4-!02、如果在一個(gè)表達(dá)式中不同位置上出現(xiàn)數(shù)值,應(yīng)區(qū)分哪些是作邏輯關(guān)系和邏輯表達(dá)式應(yīng)用掌握C語(yǔ)言的關(guān)系運(yùn)算符和邏輯運(yùn)算符后,可以用一個(gè)邏輯表達(dá)式來表示一個(gè)復(fù)雜的條件。例3.6:判斷某一年是否閏年。閏年的條件是符合下面兩個(gè)條件之一:

1、能被4整除,但不能被100整除;

2、能被4整除,又能被400整除。(year%4==0&&year%100!=0)||year%400==0考慮:判斷非閏年的條件?關(guān)系和邏輯表達(dá)式應(yīng)用掌握C語(yǔ)言的關(guān)系運(yùn)算符和邏輯運(yùn)算3.2if選擇語(yǔ)句的應(yīng)用PS1S2真假選擇結(jié)構(gòu)

3.2if選擇語(yǔ)句的應(yīng)用PS1S2真假選擇結(jié)構(gòu)3.2if選擇語(yǔ)句的應(yīng)用if語(yǔ)句用來判定所給定的條件是否滿足,根據(jù)判定的結(jié)果(真或假)決定執(zhí)行給出的幾種操作之一。if語(yǔ)句

單分支結(jié)構(gòu)

雙分支結(jié)構(gòu)

多分支結(jié)構(gòu)if語(yǔ)句的嵌套3.2if選擇語(yǔ)句的應(yīng)用if語(yǔ)句用來判定所給定的條件3.2.1單分支結(jié)構(gòu)if語(yǔ)句格式:if(表達(dá)式)語(yǔ)句;

引例:如果學(xué)生成績(jī)(score)不低于60分,則輸出“合格”3.2.1單分支結(jié)構(gòu)if語(yǔ)句格式:引例:如果學(xué)生成績(jī)3.2.1雙分支結(jié)構(gòu)if語(yǔ)句

格式:if(表達(dá)式)語(yǔ)句1;else語(yǔ)句2;

引例:如果學(xué)生成績(jī)(score)不低于60分,則輸出“合格”,否則輸出“不合格”。3.2.1雙分支結(jié)構(gòu)if語(yǔ)句格式:引例:如果學(xué)生成3.2.2多分支結(jié)構(gòu)if語(yǔ)句

引例:如果學(xué)生成績(jī)(score)不低于90分,則輸出“優(yōu)秀”;如果80≤score<90,則輸出“良好”;如果70≤score<80,則輸出“中等”;如果60≤score<70,則輸出“合格”;如果score<60,則輸出“不合格”。3.2.2多分支結(jié)構(gòu)if語(yǔ)句引例:如果學(xué)生成績(jī)(sc3.2.2多分支結(jié)構(gòu)if語(yǔ)句分析一:單分支結(jié)構(gòu)if(表達(dá)式)語(yǔ)句;特點(diǎn):滿足條件即執(zhí)行語(yǔ)句程序段:if(score>=90)printf(“優(yōu)秀”)if(score>=80&&score<90)printf(“良好”)if(score>=70&&score<80)printf(“中等”)if(score>=60&&score<70)printf(“合格”)if(score<60)printf(“不合格”)缺點(diǎn):條件表達(dá)式復(fù)雜且if語(yǔ)句過多3.2.2多分支結(jié)構(gòu)if語(yǔ)句分析一:if(表達(dá)式)語(yǔ)3.2.2多分支結(jié)構(gòu)if語(yǔ)句分析二:雙分支結(jié)構(gòu)可以實(shí)現(xiàn)不?3.2.2多分支結(jié)構(gòu)if語(yǔ)句分析二:雙分支結(jié)構(gòu)可以實(shí)現(xiàn)3.2.2多分支結(jié)構(gòu)if-elseif語(yǔ)句分析三:多分支結(jié)構(gòu)格式:

if(表達(dá)式1)

語(yǔ)句1;

elseif(表達(dá)式2)

語(yǔ)句2;elseif(表達(dá)式3)

語(yǔ)句3;…elseif(表達(dá)式m)

語(yǔ)句m;else語(yǔ)句m+1;思考--如何寫程序?3.2.2多分支結(jié)構(gòu)if-elseif語(yǔ)句分析三:多有無其他方法?有無其他方法?3.2.3if語(yǔ)句的嵌套應(yīng)用在if語(yǔ)句中又包含一個(gè)或多個(gè)if語(yǔ)句稱為if語(yǔ)句的嵌套。格式為:3.2.3if語(yǔ)句的嵌套應(yīng)用在if語(yǔ)句中又包含一個(gè)或多3.2.3if語(yǔ)句的嵌套應(yīng)用如果學(xué)生成績(jī)(score)不低于90分,則輸出“優(yōu)秀”;如果80≤score<90,則輸出“良好”;如果70≤score<80,則輸出“中等”;如果60≤score<70,則輸出“合格”;如果score<60,則輸出“不合格”。3.2.3if語(yǔ)句的嵌套應(yīng)用如果學(xué)生成績(jī)(score說明:1、三種形式的if語(yǔ)句中的“表達(dá)式”一般為關(guān)系表達(dá)式或邏輯表達(dá)式,但不限于這兩種表達(dá)式。例如:if(‘a(chǎn)’)printf(“%d”,’a’);能運(yùn)行否?

說明:1、三種形式的if語(yǔ)句中的“表達(dá)式”一般為關(guān)系表達(dá)式或說明:2、else子句不能單獨(dú)使用,必須是if語(yǔ)句的一部分,與if配對(duì)使用。例如:if(‘a(chǎn)’)printf(“%c”,’a’);elseprintf(“%c”,’b’);elseprintf(“%c”,’c’);

說明:2、else子句不能單獨(dú)使用,必須是if語(yǔ)句的一部分,說明:3、在if和else后面可以只含一個(gè)內(nèi)嵌的操作語(yǔ)句,也可以有多個(gè)操作語(yǔ)句構(gòu)成的語(yǔ)句塊(復(fù)合語(yǔ)句)。語(yǔ)句塊用{

}括起來。例如:求邊長(zhǎng)分別為a,b,c的三角形面積?

if(a+b>c&&b+c>a&&c+a>b){s=0.5*(a+b+c);area=sqrt(s*(s-a)*(s-b)*(s-c));printf(area);}elseprintf(“itisnotatriangle”);說明:3、在if和else后面可以只含一個(gè)內(nèi)嵌的操作語(yǔ)句,也說明:4、if嵌套語(yǔ)句中,應(yīng)當(dāng)注意if與else的配對(duì)關(guān)系,else總是與它上面的最近的未配對(duì)的if配對(duì)。特別是if/else子句數(shù)目不一樣時(shí)本意實(shí)際說明:4、if嵌套語(yǔ)句中,應(yīng)當(dāng)注意if與else的配對(duì)關(guān)系,說明:5、if嵌套語(yǔ)句解決匹配問題方法(1)利用空語(yǔ)句使if子句數(shù)量與else子句數(shù)量相同。(2)利用{}。將沒有else子句的if語(yǔ)句用{}括起來說明:5、if嵌套語(yǔ)句解決匹配問題方法(1)利用空語(yǔ)句使if思考題一:函數(shù):-1(x<0)y=0(x=0)1(x>0)編一個(gè)程序,輸入x,輸出y。有以下幾個(gè)程序,請(qǐng)判斷哪個(gè)是正確的?思考題

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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)論