Бьерн Страуструп - Язык программирования С++. Главы 2-4
Страница 47. Оператор goto


 

3.3.2  Оператор goto

      Презираемый оператор goto все-таки есть в С++:

           goto идентификатор;

           идентификатор: оператор

 Вообще говоря, он мало используется в языках высокого уровня, но
 может быть очень полезен, если текст на С++ создается не человеком,
 а автоматически, т.е. с помощью программы. Например,
 операторы goto используются при создании анализатора по заданной
 грамматике языка с помощью программных средств.
 Кроме того, операторы goto могут пригодиться в тех случаях,
 когда на первый план выходит скорость работы программы. Один из
 них - когда в реальном времени происходят какие-то вычисления во
 внутреннем цикле программы.
      Есть немногие ситуации и в обычных программах, когда применение
 goto оправдано. Одна из них - выход из вложенного цикла или
 переключателя. Дело в том, что оператор break во вложенных циклах
 или переключателях позволяет перейти только на один уровень выше.
 Приведем пример:

           void f()
           {
             int i;
             int j;

             for ( i = 0; i < n; i++)
                 for (j = 0; j<m; j++)
                     if (nm[i][j] == a) goto found;
                 // здесь a не найдено
                 // ...
             found:
                 //  nm[i][j] == a
           }

   Есть еще оператор continue, который позволяет перейти на конец
 цикла. Что это значит, объяснено в $$3.1.5.

 
« Предыдущая статья   Следующая статья »