Pascal - Instruction de cas imbriquée

Il est possible d'avoir un case statement dans le cadre de la séquence d'instructions d'un externe case statement. Même si lecase constants du boîtier intérieur et extérieur contiennent des valeurs communes, aucun conflit ne surviendra.

Syntaxe

La syntaxe d'une instruction case imbriquée est la suivante -

case (ch1) of
   'A': begin
      writeln('This A is part of outer case' );
         case(ch2) of
            'A': writeln('This A is part of inner case' );
            'B': (* case code *)
            ...
         end; {end of inner case}
      end; (* end of case 'A' of outer statement *)
   'B': (* case code *)
   'C': (* case code *)
   ...
end; {end of outer case}

Exemple

Le programme suivant illustre le concept.

program checknestedCase;
var
   a, b: integer;
begin
   a := 100;
   b := 200;
   
   case (a) of
      100: begin
         writeln('This  is part of outer statement' );
         case (b) of
            200: writeln('This  is part of inner statement' );
            end;
         end; 
      end;
   
   writeln('Exact value of a is : ', a );
   writeln('Exact value of b is : ', b );
end.

Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant -

This is part of outer switch
This is part of inner switch
Exact value of a is: 100
Exact value of b is: 200