case语句是多分支选择语句,if语句只有两个分支可供选择,而实际问题中常常需要用到多分支选择结构。例如,学生成绩分类(90分以上为A,……);人口统计分类(按年龄分为老、中、青、少、幼)等。当然这些都可以用if语句的嵌套形式来实现,但如果分支较多,则嵌套的if语句层数太多,程序冗长而降低了可读性,也给修改带来了极大的困难。Pascal语言提供了case语句可直接处理多分支选择,case语句由一个选择表达式和众多可选择的操作序列组成,运行时根据表达式的求值结果,在众多的分支中选取一个分支执行。

case语句的一般形式如下:
case 表达式 of
  常数表1: 语句1;
  常数表2: 语句2;
  常数表3: 语句3;
  …            …
  常数表n: 语句n;
  else     语句n+1;
end;

说明:
1、case的英文意义有“情况”、“情形”之意,我们可能这样理解case语句:当表达式的值与常数表中某一值相匹配,则执行其后面的相应语句;如果常数表中没有与表达式相匹配的常数,则执行else后面的相应语句。
2、else可以省略,此时若无与表达式的值相匹配的常数表时程序将向下运行并跳出case语句。
3、保留字end与保留字case成对出现,这个end表示case语句的结束。
4、表达式的类型通常是整形与字符型,也可以是枚举型和子界型
5、常数表是一个或一组常量,其类型与表达式类型一致,常数表行的次序是任意的,不一定要按从小到大或从大到小的次序排列,通常表可能性大的常数表列于前面,以加快程序运行的速度。

例1:输入一个个位数字,输出这个数字的英文拼法
var
  n:byte;
begin
  write('Input the number: ');
  readln(n);
  case n of
    0: writeln('Zero');
    1: writeln('One');
    2: writeln('Two');
    3: writeln('Three');
    4: writeln('Four');
    5: writeln('Five');
    6: writeln('Six');
    7: writeln('Seven');
    8: writeln('Eight');
    9: writeln('Nine');
  end;
end.

例2:输入二个实数及运算符,输出它们的和、差、积、商
var
  a,b,w:real;
  op:char;
begin
  write('Input a,b: ');
  readln(a,b);
  write('Input operator: ');
  readln(op);
  case op of
    '+': w:=a+b;
    '-': w:=a-b;
    '*': w:=a*b;
    '/': w:=a/b;
  end;
  writeln(w:0:2);
end.

例3:根据学生的成绩给予相应的分数等级,对应关系如下:
90-100 A;80-89 B;60-79 C;60分以下 D
var
  s:byte;
  ch:char;
begin
  write('Input the score: ');
  readln(s);
  case s div 10 of
    10,9: ch:='A';
       8: ch:='B';
     7,6: ch:='C';
     else ch:='D';
  end;
  writeln(s,'-->',ch);
end.

作业:

1、zerojudge:a053、d460、a244

2、输入年、月,输出该月的天数。(使用case语句)

3、某商店打折促销,原价200元以下(含200元)的商品打九五折;200元以上到2000元(含2000元)的商品打九折;2000元以上的商品打八八折。输出商品原价,输出打折后的价格。
4、某旅游景点门票价格为每人5元,但团体可以优惠。人数超过20则优惠10%;人数超过40则优惠15%;人数超过80则优惠20%;人数超过120则优惠30%。输入团体人数,输出总的门票价格。

case语句的更多相关文章

  1. sh4.case语句

    case ... esac 与其他语言中的 switch ... case 语句类似,是一种多分枝选择结构.case 语句匹配一个值或一个模式,如果匹配成功,执行相匹配的命令.case语句格式如下: ...

  2. 为什么说在使用多条件判断时switch case语句比if语句效率高?

    在学习JavaScript中的if控制语句和switch控制语句的时候,提到了使用多条件判断时switch case语句比if语句效率高,但是身为小白的我并没有在代码中看出有什么不同.去度娘找了半个小 ...

  3. 在 case 语句中使用字符串-转

    http://www.cnblogs.com/del/archive/2008/07/08/1237856.html 非常遗憾 Delphi 的 case 语句不支持字符串, 但我觉得这也可能是基于效 ...

  4. Oracle IF & CASE语句

    IF语句主要有以下三种基本形式: 一. IF-THEN语句 IF CONDITION THEN           STATEMENT 1;           ...           STATE ...

  5. Mysql之case语句(附带实例)

    这段时间,做项目做累了,好不容易有点个人的学习时间,利用这个小时,总结一下,最近做统计的时候常用的case语句吧. 结构:case  when… then …end 1.判断的同时改变其值 eg:   ...

  6. shell script 学习笔记-----if,for,while,case语句

    1.if内的判断条件为逻辑运算: 2.if内的判断条件为目录是否存在,文件是否存在,下图先检验目录/home/monster是否存在,然后再检测/home/monster中的file.txt文件是否存 ...

  7. (二)shell中case语句、程序传参、while

    2.2.6.1.case语句(1)shell中的case语句和C语言中的switch case语句作用一样,格式有差异(2)shell中的case语句天生没有break,也不需要break,和C语言中 ...

  8. [shell基础]——if/for/while/until/case 语句

    for语句 do echo $loop done ` do echo $loop done for loop in `ls /tmp` do echo $loop done while语句 while ...

  9. java中的Switch case语句

    java中的Switch case 语句 在Switch语句中有4个关键字:switch,case break,default. 在switch(变量),变量只能是整型或者字符型,程序先读出这个变量的 ...

随机推荐

  1. iOS开发UI篇—使用UItableview完成一个简单的QQ好友列表(二)

    一.实现效果             二.实现代码 1.数据模型部分 YYQQGroupModel.h文件 // // YYQQGroupModel.h // 02-QQ好友列表(基本数据的加载) / ...

  2. Linux下SVN命令

    一下内容转载于:http://blog.chinaunix.net/space.php?uid=22976768&do=blog&id=1640924.这个总结的很好~ windows ...

  3. 【0 - 1】OC内存管理

    一.内存管理概述 垃圾回收机制(GC):由系统管理内存,程序员不需要管理. OC中的垃圾回收:在OC2.0版加入垃圾回收. OC与iOS:OC有垃圾回收机制,但是iOS屏蔽了这个功能.原因:iOS运行 ...

  4. linux命令每日一练习-top free

    top看看进程的内存使用情况 free产看内存使用情况 top -n 2 -b > log.txt   将更新两次的结果输入到log.txt cat > log.txt //清空文件并写入 ...

  5. 黑马程序员——OC语言 其他语法

    Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)ARC的判断准则:只要没有强指针指向对象,就会释放对象 1.ARC特 ...

  6. Python开发入门与实战10-事务

    1. 事务 本章我们将通过一个例子来简要的说明“事务”,这个开发实战里经常遇到的名词.事务是如何体现在一个具体的业务和系统的实现里. 事务是通过将一组相关操作组合为一个,要么全部成功要么全部失败的单元 ...

  7. Sharepoint的javascript客户端对象模型获取其他站点的list

    获取当前站点(子站点而不是站点集)下的list var clientContext = new SP.ClientContext.get_current(); var list=clientConte ...

  8. 解决 xx.h has been modified since the precompiled header 系统头文件被修改

    fatal error: file '/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Dev ...

  9. Merge Intervals

    Given a collection of intervals, merge all overlapping intervals. For example,Given [1,3],[2,6],[8,1 ...

  10. HDU 2509 nim博弈

    Be the Winner Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Tot ...