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. require.js的使用

    RequireJS是一个非常小巧的JavaScript模块载入框架,是AMD规范最好的实现者之一.最新版本的RequireJS压缩后只有14K,堪称非常轻量.它还同时可以和其他的框架协同工作,使用Re ...

  2. redis教程

    windows下安装redis: http://jingyan.baidu.com/article/49ad8bce40174f5834d8fa24.html redis教程: http://www. ...

  3. qsort函数

    qsort函数用法举例 #include <stdio.h> #include <stdlib.h> #include <string.h> //数字比较函数 in ...

  4. redhat6.4上安装mysql

    1.挂载操作系统介质 [root@server- ~]# mkdir -p /media/dvd [root@server- ~]# -20130130.0-Server-x86_64-DVD1.is ...

  5. 动态获取Android权限

    @TargetApi(23)private void showPhotoDialog() { if (dialog != null && dialog.isShowing()) { d ...

  6. javaweb-dbutils2

    package cn.itcast.demo; import java.sql.SQLException;import java.util.Arrays;import java.util.List;i ...

  7. 为sproto添加python绑定

    项目地址:https://github.com/spin6lock/python-sproto 第一次写Python的C扩展,留点笔记记录一下.主要的参考文档是:Extending Python wi ...

  8. Scalding初探之一:基于Scala的Hadoop利器

    把你从写繁琐的Map-reduce Job中解放出来,写分布式跟写本地程序没两样,Scala真真代表着先进生产力的方向啊. 好的,今天开始直播基于Scala的Scalding啦,循序渐进地看以下页面: ...

  9. 腾讯优测-优社区干货精选 |  那些年,我们在Android机型适配上遇到的坑之Camera拍照时快门咔嚓声

    文/腾讯优测研发工程师 吴宇焕 优测小优有话说: android机型适配的坑自然是不少,不想掉坑快来优测优社区~ 现在Android手机一般都会带有照相功能,有很多朋友就发现手机照相时快门声音很响,想 ...

  10. springMVC 拦截器简单配置

    在spring 3.0甚础上,起来越多的用到了注解,从前的拦截器在配置文件中需要这样配置 <beans...> ... <bean id="measurementInter ...