目录

case statement

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

语法 (Syntax)

case语句的语法是 -

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

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

case语句必须始终具有与之关联的end语句。

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

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

  • 您可以在案例中包含任意数量的案例陈述。 每个案例后跟要与之比较的值和冒号。

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

  • 编译器将评估case表达式。 如果case标签的值之一与表达式的值匹配,则执行此标签后面的语句。 之后,程序在最终结束后继续。

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

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

流程图 (Flow Diagram)

Pascal中的案例陈述

例子 (Example)

以下示例说明了这一概念 -

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
↑回到顶部↑
WIKI教程 @2018