大榕树 \ Pascal语言 \ Pascal入门

分情况(CASE)语句

原文链接:http://www.mydrs.org/program/list.asp?id=130

〖语法分析〗


    分情况语句适用于对一个条件的多种情况的响应。

     格式:

case 表达式 of

    标号1:语句1;

    标号2:语句2;

     ……

     标号n:语句n;

    else 语句n+1

end;


case语句在使用时有几点要注意:


    1. end与case对应;标号与语句之间用“:”分隔;else与语句之间不用分隔符。


    2. 标号必须是一常量,其类型与表达式的类型一致

    例1: 某全自动加油站a,b,c三种汽油的单价(元/kg)分别是1.50、1.35和1.18,也提供了“自己加”或“协助加”两个服务等级,这样用户可以得到5%或10%的优惠。编一个程序,用户输入加油量、汽油品种和服务类型(f-自动,m-自己,e-协助),然后计算应付款。


program pcase1;

var

    oil,help:char;

     kg,total:real;

begin

     write('Enter the amount in kilograms(kg):'); readln(kg);

     write('Which type of the gasoline(a,b,c):'); readln(oil);

     wirte('Which type for service(f,m,e):'); readln(help);

     case oil of

         'a': total:=1.50*kg;

         'b': total:=1.35*kg;

         'c': total:=1.18*kg;

         else writeln('Input Error!')

     end;

{——————处理汽油的类型}

     case help of

         'f':;

         'm': total:=total*(1-0.05);

         'e': total:=total*(1-0.10);

         else writeln('Input Error!')

     end;

{——————处理服务类型}

     writeln;

     writeln('Total is ',total:10:2);

end.


    3. 可以多个标号对应同一条语句


    4. 语句可以是多个语句,但必须用语句括号(begin……end)括起


    5. case语句也可以嵌套

     例2:从键盘上读入年和月,输出该月有多少天。

program pcase2;

var

     year,month,day:integer;

     runnian:boolean;

begin

     write('Enter year and month:'); readln(year,month);

     case month of

         1,3,5,7,8,10,12: day:=31;

         4,6,9,11: day:=30;{————以上处理31天和30天的情况}

         2:begin

         runnian:=(year mod 400=0) or ((year mod 4=0) and (year mod 100<>0));

         case runnian of

             true: day:=28;

             false:
day:=29;

         end;

         end; {————以上处理2月的情况:闰年28天,平年29天}

     end;

end.


练习题:

    1、编程模拟剪刀、石头、布游戏:用S表示剪刀,用R表示石头,用P表示布。规则是:剪刀剪布,石头砸剪刀,布包石头。游戏者分别把自己的选择输入,计算机给出结果。


作者:sthsyan@21cn.com
来源:NOI信息学竞赛(http://noi.stinfo.net)
时间:2001-07-17

上一篇:条件语句练习题
下一篇:各种循环语句的运用

大榕树 版权所有 ©1999-2006