資源描述:
《《選擇結(jié)構(gòu)》ppt課件》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、第四講選擇結(jié)構(gòu)主講人:張志剛IF語(yǔ)句的一般格式是:IF條件THEN語(yǔ)句1{條件為真時(shí)的響應(yīng)、處理}ELSE語(yǔ)句2;{條件為假時(shí)的響應(yīng)、處理}擔(dān)待4.1IF語(yǔ)句使用條件語(yǔ)句時(shí)要注意:1、條件語(yǔ)句是一個(gè)語(yǔ)句。IF、THEN、ELSE都是語(yǔ)句的一個(gè)部分。所以它只能有一個(gè)“;”作為分隔符,放在句子的結(jié)束,特別要注意不能放在ELSE之前。2、如果我們的程序只需對(duì)條件為真的情況作出處理,不需要處理?xiàng)l件為假的情況,則IF語(yǔ)句省略ELSE分句,格式變成:IF條件THEN語(yǔ)句1;{條件為真時(shí)的響應(yīng)、處理}如:如果數(shù)a大于等于0則輸出它的平方根。ifa>=0thenwriteln(sqrt(a));對(duì)
2、以上的例子,條件為假時(shí)不需處理,于是我們干脆省去ELSE分句。3、if語(yǔ)句可以多層嵌套。嵌套時(shí)為了避免誤解,可以用begin,end括起嵌套部分;else分句一般和最近的if分句配套:IF條件0THENBEGIN????????if條件1then……else……;END????ELSEBEGIN????????if條件2then……else……;end;例1、輸入兩個(gè)數(shù)a,b,輸出較大的數(shù)。programtt;vara,b:integer;beginwrite('pleaseinputa,b:');readln(a,b);?????ifa>bthenwriteln(a)
3、?????elsewriteln(b);end.4.2CASE語(yǔ)句分情況語(yǔ)句適用于對(duì)一個(gè)條件的多種情況的響應(yīng)。???格式:case表達(dá)式of標(biāo)號(hào)1:語(yǔ)句1;????標(biāo)號(hào)2:語(yǔ)句2;……標(biāo)號(hào)n:語(yǔ)句n;else語(yǔ)句n+1end;case語(yǔ)句在使用時(shí)有幾點(diǎn)要注意:1.end與case對(duì)應(yīng);標(biāo)號(hào)與語(yǔ)句之間用“:”分隔;else與語(yǔ)句之間不用分隔符。2.標(biāo)號(hào)必須是一常量,其類型與表達(dá)式的類型一致例題:某全自動(dòng)加油站a,b,c三種汽油的單價(jià)(元/kg)分別是1.50、1.35和1.18,也提供了“自己加”或“協(xié)助加”兩個(gè)服務(wù)等級(jí),這樣用戶可以得到5%或10%的優(yōu)惠。編一個(gè)程序,用戶輸
4、入加油量、汽油品種和服務(wù)類型(f-自動(dòng),m-自己,e-協(xié)助),然后計(jì)算應(yīng)付款。programpcase1;varoil,help:char;kg,total:real;beginwrite('Entertheamountinkilograms(kg):');readln(kg);write('Whichtypeofthegasoline(a,b,c):');readln(oil);wirte('Whichtypeforservice(f,m,e):');readln(help);????caseoilof????????'a':total:=1.50*kg;????????
5、'b':total:=1.35*kg;????????'c':total:=1.18*kg;????????elsewriteln('InputError!')????end;{——————處理汽油的類型}casehelpof????????'f':;????????'m':total:=total*(1-0.05);????????'e':total:=total*(1-0.10);????????elsewriteln('InputError!')????end;{——————處理服務(wù)類型}writeln;writeln('Totalis',total:10:2
6、);end.例題:從鍵盤上讀入年和月,輸出該月有多少天。programpcase2;varyear,month,day:integer;runnian:boolean;beginwrite('Enteryearandmonth:');readln(year,month);????casemonthof????????1,3,5,7,8,10,12:day:=31;????????4,6,9,11:day:=30;{————以上處理31天和30天的情況}????????2:beginrunnian:=(yearmod400=0)or((yearmod4=0)and(yea
7、rmod100<>0));????????caserunnianof????????????true:day:=28;????????????false:day:=29;????????end;????????end;{————以上處理2月的情況:閏年28天,平年29天}????end;end.vara:real;begina:=15/8;writeln(a);writeln(a:0:2);writeln(a:0:0);end.{輸出1.8750