帕斯卡案例陈述


您已经观察到,if-then-else语句使我们能够在程序中实现多个决策。这也可以通过使用case语句以更简单的方式来实现。

句法

case 语句的语法是 -

case (expression) of
   L1 : S1;
   L2: S2;
   ...
   ...
   Ln: Sn;
end;

其中,L1L2 ... 是大小写标签或输入值,可以是整数、字符、布尔值或枚举数据项。S1S2 ……是 Pascal 语句,这些语句中的每一个都可能有一个或多个与其关联的 case 标签。该表达式称为case 选择器case 索引。案例索引可以采用与案例标签相对应的值。

case 语句必须始终有一个与之关联的结束语句。

以下规则适用于案例陈述 -

  • case 语句中使用的表达式必须具有整型或枚举类型,或者属于类类型,其中该类具有到整型或枚举类型的单个转换函数。

  • 一个案例中可以有任意数量的案例陈述。每个案例后面都跟有要比较的值和冒号。

  • case 的 case 标签必须与 case 语句中的表达式具有相同的数据类型,并且必须是常量或文字。

  • 编译器将计算 case 表达式。如果 case 标签的值之一与表达式的值匹配,则执行该标签后面的语句。之后,节目在最终结束后继续进行。

  • 如果没有一个 case 标签与表达式值匹配,则执行 else 或 other 关键字后面的语句列表。这可以是一个空的语句列表。如果不存在 else 部分并且没有 case 常量与表达式值匹配,则程序流程在最终结束后继续。

  • case 语句可以是复合语句(即Begin ... End 块)。

流程图

Pascal 语言的案例陈述

例子

下面的例子说明了这个概念 -

program checkCase;
var
   grade: char;
begin
   grade := 'A';

   case (grade) of
      'A' : writeln('Excellent!' );
      'B', 'C': writeln('Well done' );
      'D' : writeln('You passed' );
      'F' : writeln('Better try again' );
   end;     
   
   writeln('Your grade is  ', grade );
end.

当上面的代码被编译并执行时,它会产生以下结果 -

Excellent!
Your grade is A
pascal_decision_making.htm