C語言條件判斷、選擇結(jié)構(gòu)程序設(shè)計(jì).ppt_第1頁
C語言條件判斷、選擇結(jié)構(gòu)程序設(shè)計(jì).ppt_第2頁
C語言條件判斷、選擇結(jié)構(gòu)程序設(shè)計(jì).ppt_第3頁
C語言條件判斷、選擇結(jié)構(gòu)程序設(shè)計(jì).ppt_第4頁
C語言條件判斷、選擇結(jié)構(gòu)程序設(shè)計(jì).ppt_第5頁
已閱讀5頁,還剩62頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、1,C語言條件判斷、選擇結(jié)構(gòu)程序設(shè)計(jì),徐艷艷 ,2,本次課程所講內(nèi)容,條件判斷 關(guān)系運(yùn)算符與關(guān)系表達(dá)式 邏輯運(yùn)算符與邏輯表達(dá)式 選擇結(jié)構(gòu)程序設(shè)計(jì) if語句 條件運(yùn)算符與條件表達(dá)式 switch-case語句,3,本次課程所講內(nèi)容,條件判斷 關(guān)系運(yùn)算符與關(guān)系表達(dá)式 邏輯運(yùn)算符與邏輯表達(dá)式 選擇結(jié)構(gòu)程序設(shè)計(jì) if語句 條件運(yùn)算符與條件表達(dá)式 switch-case語句,4,條件判斷,如果明天天氣好,我們就去踏青 票賣完了的話,我們就看不成球賽了 如果能早點(diǎn)下課,我們就可以搶到飯了 如果ab,輸出a;如果a=b,輸出b 70歲以上的老人和10歲以下的兒童,入公園免票,5,本次課程所講內(nèi)容,條件判斷

2、關(guān)系運(yùn)算符與關(guān)系表達(dá)式 邏輯運(yùn)算符與邏輯表達(dá)式 選擇結(jié)構(gòu)程序設(shè)計(jì) if語句 條件運(yùn)算符與條件表達(dá)式 switch-case語句,6,關(guān)系運(yùn)算符,關(guān)系運(yùn)算是一種“比較運(yùn)算”,即用關(guān)系運(yùn)算符對(duì)兩個(gè)運(yùn)算量進(jìn)行比較,例如,關(guān)系表達(dá)式 ab ac av,7,關(guān)系運(yùn)算符及其優(yōu)先次序,優(yōu)先級(jí)相同 (高),優(yōu)先級(jí)相同 (低),關(guān)系、算術(shù)和賦值運(yùn)算符的優(yōu)先級(jí)關(guān)系,例如 ca+b ab=c a=bc x!=a*bc,算術(shù)運(yùn)算符,關(guān)系運(yùn)算符,賦值運(yùn)算符,(高),(低),9,關(guān)系表達(dá)式,用關(guān)系運(yùn)算符將若干表達(dá)式連接起來的式子,稱為關(guān)系表達(dá)式 a+bb+c (a=3)(b=5) ab)bc 2*a+bc-d,關(guān)系表達(dá)式

3、的結(jié)果,在C語言中,關(guān)系表達(dá)式的結(jié)果為1或0 關(guān)系表達(dá)式成立時(shí),結(jié)果為1,表示“真” 關(guān)系表達(dá)式不成立時(shí),結(jié)果為0,表示“假” 例如 3bc (ab)=c b+ca,值為0,值為1,值為0,值為1,值為0,11,關(guān)系運(yùn)算的結(jié)果可以參與運(yùn)算 若a=3, b=2, c=1 d=ab e=abc f=ab+cb)+(cb),d=1,e=0,f=1,g=2,不推薦使用,12,本次課程所講內(nèi)容,條件判斷 關(guān)系運(yùn)算符與關(guān)系表達(dá)式 邏輯運(yùn)算符與邏輯表達(dá)式 選擇結(jié)構(gòu)程序設(shè)計(jì) if語句 條件運(yùn)算符與條件表達(dá)式 switch-case語句,13,有時(shí)需要判斷的條件不是一個(gè)簡(jiǎn)單的條件,而是一個(gè)復(fù)合的條件 例如 ab

4、和xy需要同時(shí)滿足 ab和xy至少有一個(gè)條件要滿足 70歲以上的老人和10人歲以下的兒童,入園免票,14,邏輯運(yùn)算符,邏輯運(yùn)算符優(yōu)先級(jí)次序: !,關(guān)系表達(dá)式,一個(gè)語句,可以有多個(gè)語句,29,if 結(jié)構(gòu)舉例,輸入兩個(gè)實(shí)數(shù),按代數(shù)值由小到大的順序輸出這兩個(gè)數(shù) 分析問題 假設(shè)兩個(gè)數(shù)是a,b 比較兩個(gè)數(shù)的大小 如果ab,a和b的值互換,之后輸出a和b的值 如果ab,直接輸出a和b的值,30,#include void main() double a,b,t; printf(“Please enter a and b:); scanf(%lf,%lf, ,if 結(jié)構(gòu) 程序舉例c6_1.c,將兩個(gè)實(shí)數(shù)按照

5、由小到大的順序輸出,程序運(yùn)行結(jié)果: Please enter a and b: 3.6,-3.2 -3.20 , 3.60,多個(gè)語句,需要由花括號(hào) 括起來,31,if-else 結(jié)構(gòu),格式:if (表達(dá)式) 語句1; else 語句2; 例如 if(xy) printf(%d,x); else printf(%d,y);,else不能單獨(dú)使用,如果使用,必須與 if 配對(duì),if-else結(jié)構(gòu)舉例,輸入矩形的兩個(gè)邊長(zhǎng),求矩形的面積,為了防止誤輸入,如果輸入的邊長(zhǎng)小于或者等于0,要輸出告錯(cuò)信息 分析問題 要定義三個(gè)變量,邊長(zhǎng)1,邊長(zhǎng)2,面積 如果邊長(zhǎng)1和邊長(zhǎng)2大于0,計(jì)算矩形的面積并且輸出面積的值

6、 否則,給出告錯(cuò)信息,33,#include void main() double a,b,area; printf(“請(qǐng)輸入矩形邊長(zhǎng)a和b:); scanf(%lf,%lf, ,if-else結(jié)構(gòu) 程序舉例c6_2.c,求矩形的面積,邏輯表達(dá)式,34,#include void main() double a,b,area; printf(“請(qǐng)輸入矩形邊長(zhǎng)a和b:); scanf(%lf,%lf, ,if-else結(jié)構(gòu)程序舉例c6_3.c,求矩形的面積,用兩個(gè)if語句代替if-else語句,不好!,35,if-else結(jié)構(gòu)舉例,編寫一段程序,完成以下任務(wù): 如右圖所示,輸入一個(gè)實(shí)數(shù)x,如果2

7、.0=x=6.0,則整數(shù)y=1;否則,y=0,36,#include void main() float x; int y; printf(Please input x:); scanf(%f, ,完成上頁ppt中的任務(wù),錯(cuò)誤!無論x取什么樣的值,y的值總是1,if- else結(jié)構(gòu)程序舉例c6_4.c,37,#include void main() float x; int y; printf(Please input x:); scanf(%f, ,正確!,if- else結(jié)構(gòu)程序舉例c6_5.c,38,if-else if 結(jié)構(gòu),格式 if (表達(dá)式1) 語句1; else if (表達(dá)式

8、2) 語句2; else if (表達(dá)式n-1) 語句n-1; else 語句n;,39,if-else if 結(jié)構(gòu),40,if-else if 結(jié)構(gòu)舉例,編寫一段程序,完成以下任務(wù): 如下圖所示, 輸入一個(gè)實(shí)數(shù)x 如果x-2.0, 則實(shí)數(shù)y=-1.0 如果-2.0=x=2.0,則y=0.5x 否則,y=1.0,41,#include void main() double x,y; printf(Please input x:); scanf(%lf, ,if- else if 結(jié)構(gòu)程序舉例c6_6.c,42,if-else if 結(jié)構(gòu)舉例,編寫一段程序,完成以下任務(wù):,43,#include

9、 void main() double number,cost; printf(Please input number:); scanf(%lf, ,if- else if 結(jié)構(gòu)程序舉例c6_7.c,在if語句中,若括號(hào)內(nèi)的表達(dá)式的值為0,按“假”處理,若表達(dá)式的值為非0,按“真”處理。所以,括號(hào)內(nèi)可以是關(guān)系表達(dá)式,邏輯表達(dá)式或者單個(gè)的量或者算數(shù)表達(dá)式 if (ab) if (ab,45,if語句的嵌套(1),語句1;,語句2;,語句1;,語句2;,46,if語句的嵌套(2),else總是與它上面最近的未配對(duì)的 if 配對(duì),if ( ) if ( ) 語句1; else if ( ) 語句2;

10、 else 語句3;,if ( ) if ( ) 語句1; else if ( ) 語句2; else 語句3;,47,if語句的嵌套(3),最好使外層if和內(nèi)嵌if都包含else部分,這樣if和else的數(shù)量相同,一一對(duì)應(yīng),不易出錯(cuò) 如果if與else的數(shù)目不同,可以加花括號(hào)來確定配對(duì)關(guān)系,if ( ) if ( ) 語句1; else 語句2; else if ( ) 語句2; else 語句3;,if ( ) if ( ) 語句1; else 語句2,48,if語句的嵌套舉例,編寫一段程序,輸入一個(gè)實(shí)數(shù)x,按照如下的公式輸出整數(shù)y的值,49,#include void main() do

11、uble x; int y; printf(enter x:); scanf(%lf, ,if語句的嵌套程序舉例c6_8.c,正確,50,#include void main() double x; int y; printf(enter x:); scanf(%lf, ,if語句的嵌套程序舉例c6_9.c,正確,51,#include void main() double x; int y; printf(enter x:); scanf(%lf, ,if語句的嵌套程序舉例c6_10.c,不正確,52,#include void main() double x; int y; printf(

12、enter x:); scanf(%lf, ,if語句的嵌套程序舉例c6_11.c,不正確,53,本次課程所講內(nèi)容,條件判斷 關(guān)系運(yùn)算符與關(guān)系表達(dá)式 邏輯運(yùn)算符與邏輯表達(dá)式 選擇結(jié)構(gòu)程序設(shè)計(jì) if語句 條件運(yùn)算符與條件表達(dá)式 switch-case語句,54,條件運(yùn)算符和條件表達(dá)式(1),條件運(yùn)算符“? :” 條件表達(dá)式 表達(dá)式1 ? 表達(dá)式2 : 表達(dá)式3,55,條件運(yùn)算符和條件表達(dá)式(2),max=ab ? a : b;,if(ab) max=a; else max=b;,56,條件運(yùn)算符和條件表達(dá)式(3),條件運(yùn)算符優(yōu)先級(jí)高于賦值運(yùn)算符,但低于算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符 ab ?

13、 a : b ab ? a : b+1 b=!a ? 0 : a a printf(enter a and b:); scanf(%d,%d, ,temp8.c,59,#include void main() int a,b; printf(enter a and b:); scanf(%d,%d, ,if(ab) printf(“max is a=%dn”,a); else printf(“max is b=%dn”,b);,temp9.c,60,本次課程所講內(nèi)容,條件判斷 關(guān)系運(yùn)算符與關(guān)系表達(dá)式 邏輯運(yùn)算符與邏輯表達(dá)式 選擇結(jié)構(gòu)程序設(shè)計(jì) if語句 條件運(yùn)算符與條件表達(dá)式 switch-ca

14、se語句,61,switch-case語句,格式 switch(表達(dá)式)不能為實(shí)型 不能為變量 case 常量表達(dá)式1:語句1 ;break; case 常量表達(dá)式2:語句2 ;break; case 常量表達(dá)式n:語句n ;break; default: 語句n+1; break; ,switch語句,switch后面括號(hào)內(nèi)的“表達(dá)式”可以是任何類型的表達(dá)式,值為離散型 當(dāng)表達(dá)式的值與某一個(gè)case后面的常量表達(dá)式的值相等時(shí),就執(zhí)行此case后面的語句,如果都不匹配,就執(zhí)行default后面的語句 各個(gè)case后面的常量表達(dá)式的值必須互不相同 各個(gè)case和default的出現(xiàn)次序不影響執(zhí)行

15、結(jié)果,63,#include void main() char grade; printf(enter grade:); scanf(%c, ,如果grade的值為B,則輸出結(jié)果為: 7084 6069 60 error,各語句后面沒有break語句,c6_12.c,64,#include void main() char grade; printf(enter grade:); scanf(%c, ,如果grade的值為B,則輸出結(jié)果為: 7084,各語句后面有break語句,c6_13.c,65,#include void main() int a=3,b=6; switch(ab?1:2) case 1:b=a+b; case 2:a=a+b; default: b-; pr

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(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)論