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