4.1 IF 語(yǔ)句
類(lèi)型一: if <布爾表達式> then <語(yǔ)句>;
else <語(yǔ)句2>;
當布爾表達式的值為真,則執行then后面的語(yǔ)句,值為假時(shí)有兩種情況:要么什么也不做,要么執行else后面的語(yǔ)句。注意else前面沒(méi)有分號 ,因為分號是兩個(gè)語(yǔ)句之間的分隔符,而else并非語(yǔ)句。如果在該處添了分號,則在編譯的時(shí)候就會(huì )認為if 語(yǔ)句到此結束,而把else當作另一句的開(kāi)頭,輸出出錯信息。
例:根據學(xué)生的成績(jì)給予相應的等 級 ,對應關(guān)系如下:
?。梗啊保埃啊。?/p>
?。福啊福埂 。?/p>
?。叮啊罚埂 。?nbsp;
?。叮耙韵隆 。?wbr>
Program Score;
Var
S:real;
Ch:char;
Begin
End;
在Pascal語(yǔ)言if語(yǔ)句中被構造的語(yǔ)句只能是一條語(yǔ)句,當條件選擇某個(gè)分支的計算要用多個(gè)語(yǔ)句描述時(shí),就必須把該分支用begin和 end括來(lái),寫(xiě)成復合語(yǔ)句。在用if語(yǔ)句連續嵌套時(shí),如果你插入適量的復合語(yǔ)句,有利于程序的閱讀和理解。
例:當x>0時(shí)候,計算x*x,并且輸出x和x*x,
program lianxie3;
var x,x1:real;
begin
readln('x=',x);
if x>= 0
begin
x1:=x*x;
writeln('x*x=',x1);
writeln('x=',x);
end;
end.
當if 語(yǔ)句嵌套時(shí),Pascal約定else總是和最近的一個(gè)if配對。
4.2 case語(yǔ)句
case語(yǔ)句是由一個(gè)表達式和眾多可選擇的操作序列組成。運行時(shí),根據表達式的求值結果,在眾多的分支中選取一個(gè)分支執行。其形式為:
case 表達式 of
常量1:語(yǔ)句1;
常量2:語(yǔ)句2;
……
常量n:語(yǔ)句n;
else 語(yǔ)句 n+1 {可選項}
end;
表達式只能是順序類(lèi)型(除了實(shí)型以外的簡(jiǎn)單類(lèi)型),其值必須是唯一確定并且和 常量類(lèi)型相同。case語(yǔ)句執行和表達式值相匹配的case常數所指向的那條語(yǔ)句,如果沒(méi)有相匹配的值,則執行else部分(如果有的話(huà))或者什么也不做。在else前面的語(yǔ)句末尾有分號,這是和if語(yǔ)句不同的。
例:根據學(xué)生的成績(jì)給予相應的等 級 ,對應關(guān)系如下:
?。梗啊保埃啊。?/p>
?。福啊福埂 。?/p>
?。叮啊罚埂 。?nbsp;
?。叮耙韵隆 。?/p>
program chengji;
var s:real;ch:char;
begin
write(' Please
readln(s);
if(s>=0)and(s<=100)then
case s div 10 of
10,9:ch:=' A ';
8:ch:='B';
7,6:='C';
else ch:='D';
end;
writeln(s,'--',ch);
end.
練習:某幼兒園只收2至6歲的小孩,2~3歲入小班,4歲入中班,5~6歲入大班。編寫(xiě)程序輸入姓名和年齡,判斷小孩入哪個(gè)班?并按"姓名年齡 班級"的格式輸出。
聯(lián)系客服