資源描述:
《第3章選擇結(jié)構(gòu).ppt》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、第三章選擇結(jié)構(gòu)C語言程序設(shè)計華北電力大學(xué)計算機科學(xué)系鄭玲1學(xué)習(xí)目標(biāo)掌握關(guān)系運算與邏輯運算的規(guī)律及規(guī)則;掌握if語句的語法規(guī)則、執(zhí)行過程和使用方法;理解if語句的嵌套;掌握switch語句的語法規(guī)則和用法;掌握條件運算符和條件表達式;掌握選擇結(jié)構(gòu)程序設(shè)計方法及技巧。23.1選擇結(jié)構(gòu)概述【例3-1】輸入x的值,求分段函數(shù)y=f(x)的值,函數(shù)表示如下:x2x>0y=0x<=0#includevoidmain(void){intx,y;/*定義變量x和y*/printf("請輸入x的值:");sc
2、anf("%d",&x);/*從鍵盤上輸入x*/if(x>0)/*判斷x的值是否大于0*/y=x*x;/*如果x>0,則y=x2*/else/*如果x不大0,即x小于等于0*/y=0;/*如果x<=0,則y=0*/printf("y=%d",y);/*輸出y的值*/}請輸入x的值:5y=25Pressanykeytocontinue請輸入x的值:0y=0Pressanykeytocontinue選擇結(jié)構(gòu)33.2關(guān)系運算與邏輯運算3.2.1關(guān)系運算1.關(guān)系運算符設(shè)變量x=-2表3-1關(guān)系運算符運算符含義舉例
3、值<小于x<01<=小于或等于x<=01>大于x>-20>=大于或等于x>=-21==等于x==00!=不等于x!=0143.2.1關(guān)系運算2.優(yōu)先級(1)在關(guān)系運算符中,<、<=、>、>=這4個運算符的優(yōu)先級相同。(2)=和!=這2個運算符的優(yōu)先級也相同,但比上述4個運算符優(yōu)先級低。(3)關(guān)系運算符的優(yōu)先級,低于算術(shù)運算符,但高于賦值運算符。(4)關(guān)系運算符都是雙目運算符,其結(jié)合性均為左結(jié)合。例如:表達式x+y>x*y等價于(x+y)>(x*y)。53.2.1關(guān)系運算3.關(guān)系表達式關(guān)系表達式的一般形式為:表
4、達式關(guān)系運算符表達式例如:a+b>c-dx>3/20<=x<=5注意:若x=10,0<=x<=5的值?0<=x<=5根據(jù)左結(jié)合性,它等價于(0<=x)<=5。0<=x的值為1,(1)<=5的值為1。關(guān)系表達式:0<=x<=5其數(shù)學(xué)含義為x在[0,5]區(qū)間上,顯然x=10不在[0,5]區(qū)間,而C語言的表達式卻為1(真),我們得到了一個與數(shù)學(xué)相違背的結(jié)論。63.2.3邏輯運算1.邏輯運算符表3-2邏輯運算符運算符含義舉例值!非!xx=0則!x為1;x=1則!x為0&&邏輯與x&&y當(dāng)x和y都為1時x&&y的值為1
5、;否則x&&y的值為0
6、
7、邏輯或x
8、
9、y當(dāng)x或y的值有一個為1時,x
10、
11、y值就為1;否則x
12、
13、y的值為02.運算規(guī)則&&當(dāng)且僅當(dāng)兩個運算量的值都為“真”時,運算結(jié)果為“真”,否則為“假”。
14、
15、當(dāng)且僅當(dāng)兩個運算量的值都為“假”時,運算結(jié)果為“假”,否則為“真”。!當(dāng)運算量的值為“真”時,運算結(jié)果為“假”;當(dāng)運算量的值為“假”時,運算結(jié)果為“真”。邏輯表達式的值只有“真”和“假”兩種,用“1”和“0”來表示。73.2.3邏輯運算3.優(yōu)先級邏輯非的優(yōu)先級最高,邏輯與次之,邏輯或最低,即:!→?&&→
16、
17、與其它種類運
18、算符的優(yōu)先關(guān)系為:!→算術(shù)運算→關(guān)系運算→&&→
19、
20、→賦值運算&&和
21、
22、均為雙目運算符。具有左結(jié)合性。!為單目運算符,具有右結(jié)合性。例1:判斷x是否在[0,5]區(qū)間,寫出邏輯表達式x>=0&&x<=5當(dāng)x=10時,由于x>=0為1,x<=5為0,則x>=0&&x<=5的值為0;當(dāng)x=3時,由于x>=0為1,x<=5為1,則x>=0&&x<=5的值為1;當(dāng)x=-5時,由于x>=0為0,x<=5為1,則x>=0&&x<=5的值為0;83.2.3邏輯運算例2:x<0
23、
24、x>5當(dāng)x=10時,x<0為0,x>5為0,則
25、x<0
26、
27、x>5的值為1;當(dāng)x=3時,x<0為0,x>5為0,則x<0
28、
29、x>5的值為0;當(dāng)x=-5時,x<0為1,x>5為0,則x<0
30、
31、x>5的值為1;注意:表達式x<0
32、
33、x>5的數(shù)學(xué)含義為:x?[0,5]區(qū)間,與邏輯表達式x>=0&&x<=5值正好相反。例3:!(x<0
34、
35、x>5)與x>=0&&x<=5等價!(x>=0&&x<=5)與x<0
36、
37、x>5等價93.2.3邏輯運算注意:C語言中邏輯量的真假判定的規(guī)則:0為“假”非0為“真”例4:5&&3,5
38、
39、0都是正確的邏輯表達式5&&3的值為1。5
40、
41、0
42、的值為1。103.2.3邏輯運算注意:在C語言中有邏輯運算的短路問題在計算exp1&&exp2或exp1
43、
44、exp2表達式時,為了提高計算效率,計算總是從左到右進行,一旦能確定結(jié)果就終止計算。對于邏輯與運算,如果第一個操作數(shù)被判定為“假”,系統(tǒng)不再判定或求解第二操作數(shù)。對于邏輯或運算,如果第一個操作數(shù)被判定為“真”,系統(tǒng)不再判定或求解第二操作數(shù)。113.2.3邏輯運算【例3-2】邏輯運算舉例#inc