計(jì)算機(jī)知識(shí)點(diǎn)第4章分支語(yǔ)句_第1頁(yè)
計(jì)算機(jī)知識(shí)點(diǎn)第4章分支語(yǔ)句_第2頁(yè)
計(jì)算機(jī)知識(shí)點(diǎn)第4章分支語(yǔ)句_第3頁(yè)
計(jì)算機(jī)知識(shí)點(diǎn)第4章分支語(yǔ)句_第4頁(yè)
計(jì)算機(jī)知識(shí)點(diǎn)第4章分支語(yǔ)句_第5頁(yè)
已閱讀5頁(yè),還剩18頁(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)介

第4章分支語(yǔ)句4.1if結(jié)構(gòu)功能:當(dāng)表達(dá)式值非0時(shí),執(zhí)行語(yǔ)句體A,否則不執(zhí)行語(yǔ)句體A.形式1

if(表達(dá)式)語(yǔ)句體A4.1.1

if語(yǔ)句例如:if(x>y)

{x=x%2;

printf("%d",x);

}其流程圖:表達(dá)式語(yǔ)句體A=00形式

if(表達(dá)式)功能: 表達(dá)式為非0(真),執(zhí)行語(yǔ)句體A

表達(dá)式為0(假),執(zhí)行語(yǔ)句體Belse語(yǔ)句體B語(yǔ)句體A4.1.2

if~else語(yǔ)句例:if(x>y) printf("%d",x); else

printf("%d",y);0=0語(yǔ)句體A語(yǔ)句體B表達(dá)式形式

if(表達(dá)式1)elseif(表達(dá)式2)elseif(表達(dá)式3)……elseif(表達(dá)式n)else語(yǔ)句體1語(yǔ)句體2語(yǔ)句體3語(yǔ)句體n語(yǔ)句體n+14.1.3

if語(yǔ)句的嵌套條件2語(yǔ)句體1語(yǔ)句體2語(yǔ)句體3語(yǔ)句體n語(yǔ)句n+1……=00條件1條件n條件3=0=0=0=0000流程:如:if(3)prinf("o.k");if('a')…1.表達(dá)式可以是邏輯、關(guān)系,甚至是算術(shù)表達(dá)式2.語(yǔ)句必須以分號(hào)結(jié)束3.若語(yǔ)句不止一條,則必須用{}括起來(lái)。在{}外可以不用分號(hào)二、注意的問(wèn)題4.else與最近的if配對(duì).#include<stdio.h>

main()

{floata,b,t;printf("pleaseinput2number:");scanf("%f,%f",&a,&b);

if(a>b)

{t=a;a=b;b=t;}

printf("%5.2f,%5.2f",a,b);

}例1輸入兩個(gè)實(shí)數(shù),按照數(shù)值由小到大次序輸出這兩個(gè)數(shù)。pleaseinput2number:3.6,–3.2–3.20,3.60運(yùn)行情況如下:例2輸入三個(gè)數(shù),按大小順序輸出。#include<stdio.h>

main()

{floata,b,c,t;

printf("pleaseinput3number:");scanf("%f,%f,%f",&a,&b,&c);

if(a>b)

{t=a;a=b;b=t;}

if(a>c)

{t=a;a=c;c=t;}

if(b>c)

{t=b;b=c;c=t;}

printf("%5.2f,%5.2f,%5.2f",a,b,c);

}運(yùn)行情況如下:pleaseinput3number:3,7,1

1.00,3.00,7.00例3

有一函數(shù):y=–1(x<0)0(x=0)1(x>0)編一程序,輸入一個(gè)x值,輸出y值。有以下幾種寫法,請(qǐng)判斷哪些是正確的?程序2:將程序1的if語(yǔ)句改為:

#include<stdio.h>

main()

{intx,y;

printf("pleaseinputanumber:");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);

}程序1:

#include<stdio.h>

main()

{intx,y;

printf("pleaseinputanumber:");scanf("%d",&x);

if(x<0)

y=–1;

elseif(x==0)

y=0;

else

y=1;

printf("x=%d,y=%d\n",x,y);

}程序4:將程序1的if語(yǔ)句改為:#include<stdio.h>main(){intx,y;printf("pleaseinputanumber:");scanf("%d",&x);

y=0;if(x>=0)if(x>0)y=1;elsey=-1;printf("x=%d,y=%d\n",x,y);}

程序3:將程序1的if語(yǔ)句改為:#include<stdio.h>main(){intx,y;printf("pleaseinputanumber:");scanf("%d",&x);

y=-1;if(x!=0)if(x>0)y=1;elsey=0;printf("x=%d,y=%d\n",x,y);}1.程序1和程序2是正確的。

它們代表的函數(shù)為:2.程序3和程序4是錯(cuò)誤的。

它們代表的函數(shù)為:y=0(x<0)–1(x=0)1(x>0)y=–1(x<0)0(x=0)1(x>0)結(jié)論:思考練習(xí):分別畫出每個(gè)程序的流程圖4.2switch語(yǔ)句用if或if/else或它們的嵌套也可使程序?qū)崿F(xiàn)多路分支,但容易出現(xiàn)下面的問(wèn)題:(1)可讀性差(2)破壞結(jié)構(gòu)解決問(wèn)題的方法:采用switch語(yǔ)句。switch(變量){

case常量表達(dá)式1:語(yǔ)句體1

case常量表達(dá)式2:語(yǔ)句體2

case常量表達(dá)式n:語(yǔ)句體ndefault:語(yǔ)句體(n+1)}一般形式:(1)

根據(jù)表達(dá)式的取值,判斷其與哪一個(gè)常量表達(dá)式相等。如=表達(dá)式i,則自語(yǔ)句i開(kāi)始執(zhí)行,直到語(yǔ)句n+1止。(2)若與所有常量表達(dá)式值不相等,則從default后的語(yǔ)句開(kāi)始執(zhí)行。功能:注:default可有可無(wú)。例:

根據(jù)成績(jī)等級(jí)打印百分?jǐn)?shù)段.switch(grade){case'A':printf("85~100\n");case'B':printf("70~84\n");case'C':printf("60~69\n");case'D':printf("<60\n");default:printf("error\n");}程序如下:#include<stdio.h>main(){chargrade;printf("pleaseinputacharacter:");scanf("%c",&grade);switch(grade) {case'A':printf("85-100\n"); case'B':printf("70-84\n"); case'C':printf("60-69\n"); case'D':printf("<60\n"); default:printf("Error\n");}}運(yùn)行結(jié)果為:A程序運(yùn)行結(jié)果不在預(yù)料之中!產(chǎn)生錯(cuò)誤的原因:

沒(méi)有完全起到分支作用。85-10070-8460-69<60Errorswitch(表達(dá)式)

{case常表1:語(yǔ)句1;

break;

case常表2:

語(yǔ)句2;

break;

……

case常表n:語(yǔ)句n;

break;

default:語(yǔ)句n+1;

}一般形式為:解決辦法:

增加break語(yǔ)句,使之跳出switch結(jié)構(gòu)。1.常量表達(dá)式的值必須互不相等,否則會(huì)有二異性。2.case順序無(wú)關(guān)緊要。3.不一定非用break不可,有時(shí)幾種情況合并執(zhí)行一組語(yǔ)句。注意:switch(grade){case'A':case'B':case'C':

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論