Языки программирования - концепции и принципы

Если вычисленного значения выражения не


 break; 

                                                                                           ,

    Если вычисленного значения выражения не оказывается в списке, то выпол­няется оператор, заданный по умолчанию (default_statement). В языке С, ес­ли альтернатива default отсутствует, по умолчанию подразумевается пустой оператор. Эту возможность использовать не следует, потому что читатель про­граммы не может узнать, подразумевался ли пустой default-оператор, или программист просто забыл задать необходимые операторы.

   Во многих случаях операторы для двух или нескольких альтернатив иден­тичны. В языке С нет специальных средств для этого случая (см. ниже); а в Ada есть обширный набор синтаксических конструкций Для группировки альтер­натив:

С: Character;

case С is

Ada

when 'A'.. 'Z'                                 => statement_1;



when '0'.. '9'                                  => statement_2;

when '+' | '-' |' *' | '/'                       =>statement_3;

when others                                   => statement_4;

end case;

В Ada альтернативы представляются зарезервированным ключевым словом when, а альтернатива по умолчанию называется others. Case-альтернативаможет содержать диапазон значений value_1 .. value_2 или набор значений, разделенных знаком «|».

 

 

Оператор break в языке С

   В языке С нужно явно завершать каждую case-альтернативу оператором break, иначе после него вычисление «провалится» на следующую case-аль­тернативу. Можно воспользоваться такими «провалами» и построить конст­рукцию, напоминающую многоальтернативную конструкцию языка Ada:

 char с;

switch (с) {    

         case 'A': case'B': ... case'Z':

         statement_1 ;

C

         break;

   case'O': ... case '9':

   statement_2;

   break;

         case '+'; case '-': case '*': case '/':

         statement_3 :

          break;

 default:

statement_4;

 break;

Поскольку каждое значение должно быть явно написано, switch-оператор в языке С далеко не так удобен, как case-оператор в Ada.


Содержание раздела