Лекции. Основные понятия и определения
Скачать 1.94 Mb.
|
5.7. Управляемые переходыПредназначены для выхода из сложных инструкций управления, например, циклов. В языке C есть 2 инструкции управляемых переходов. 5.7.1. Инструкция breakПередает управление инструкции, непосредственно следующей за инструкцией цикла или switch (см. ниже). Формат: break; Эквивалентная схема: for(e1; e2; e3){ for(e1; e2; e3){ ................................. .................................... if(<условие>)break; if(<условие>)goto exit; ................................. ............................... } } ......................... exit:.............................. Пример. Дано {xi}, i=1...30. Найти длину первой подпоследовательности, состоящей только из положительных элементов. pr=false; for(kol=i=0; i<30; i++){ if(x[ i ]>0){ kol++; if(!pr)pr=true; } if(x[ i ]<=0 && pr)break; } Замечание. Почти всегда без инструкции break можно обойтись. Пример. Тот же. fl=true; pr=false; for(kol=i=0; i<30 && fl; i++){ if(x[ i ]>0){ kol++; if(!pr)pr=true; } if(x[ i ]<=0 && pr)fl=false; } 5.7.2. Инструкция continueВызывает переход в конец тела цикла (точнее, к вычислению выражения 3, затем к проверке условия выполнения цикла (выражение 2) в инструкции for или непосредственно к проверке условия в инструкциях while и do). Формат: continue; Эквивалентная схема: for(e1; e2; e3){ for(e1; e2; e3){ ................................. ...................................... if(<условие>)continue; if(<условие>)goto next; ................................. ...................................... } next:; ...................................... } Пример. Обработка положительных элементов массива. for(i=0; i if(a[ i ]<=0)continue; if(a[ i ]>0){/* Обработка a[ i ]>0 */ /*Обработка a[ i ]>0 */ ……….. .................................................. .................................. } } } 5.7.3. Инструкции exit и continueВ языке Basic имеется семейство инструкций exit, которые действуют аналогично инструкции break в языке C. Каждая инструкция должна находиться внутри соответствующей сложной инструкции и действует только на нее. В рассмотренном ниже примере используется инструкция exit for. Пример. Дано {xi}, i=1...30. Найти длину первой подпоследовательности, состоящей только из положительных элементов. pr=False : kol=0 For i=0 To 29 If x(i)>0 Then kol += 1 : If Not pr Then pr=True End If If x(i)<=0 And pr Then Exit For Next Замечание. Если используются вложенные циклы Do, For или While, а в теле самого внутреннего цикла инструкция Exit, то Exit Do действует только на цикл Do, Exit For – только на цикл For, Exit While – только на цикл While. Существуют также инструкции Exit Select, Exit Sub, Exit Function. Кроме того, есть инструкция перехода к концу тела цикла Continue {Do | For | While} , действующая так же, как инструкция continue языка С, для ближайшей содержащей ее инструкции цикла. 30> |