信息学竞赛Pascal语言选择结构程序设计(三)(2)
CASE语句
分情况语句适用于对一个条件的多种情况的响应。
格式:
case表达式of
标号1:语句1;
标号2:语句2;
……
标号n:语句n;
else语句n+1
end;
case语句在使用时有几点要注意:
1.end与case对应;标号与语句之间用“:”分隔;else与语句之间不用分隔符。
2.标号必须是一常量,其类型与表达式的类型一致
例2:某全自动加油站a,b,c三种汽油的单价(元/kg)分别是1.50、1.35和1.18,也提供了“自己加”或“协助加”两个服务等级,这样用户可以得到5%或10%的优惠。编一个程序,用户输入加油量、汽油品种和服务类型(f-自动,m-自己,e-协助),然后计算应付款。
programpcase1;
var
oil,help:char;
kg,total:real;
begin
write('Entertheamountinkilograms(kg):');readln(kg);
write('Whichtypeofthegasoline(a,b,c):');readln(oil);
wirte('Whichtypeforservice(f,m,e):');readln(help);
caseoilof
'a':total:=1.50*kg;
'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;
{——————处理服务类型}
writeln;
writeln('Totalis',total:10:2);
end.
3.可以多个标号对应同一条语句
4.语句可以是多个语句,但必须用语句括号(begin……end)括起
5.case语句也可以嵌套
例3:从键盘上读入年和月,输出该月有多少天。
programpcase2;
var
year,month,day:integer;
runnian:boolean;
begin
write('Enteryearandmonth:');readln(year,month);
casemonthof
1,3,5,7,8,10,12:day:=31;
4,6,9,11:day:=30;{————以上处理31天和30天的情况}
2:begin
runnian:=(yearmod400=0)or((yearmod4=0)and(yearmod100<>0));
caserunnianof
true:day:=28;
false:day:=29;
end;
end;{————以上处理2月的情况:闰年28天,平年29天}
end;
end.
下一页阅读:思考与练习
