Читать в оригинале

<< ПредыдущаяОглавлениеСледующая >>


5.5. Операторы перехода

5.5.1. Оператор goto

Оператор goto имеет простой синтаксис и семантику:

goto [метка|case константное_выражение|default];

Все операторы языка C# могут иметь метку - уникальный идентификатор, предшествующий оператору и отделенный от него символом двоеточия. Передача управления помеченному оператору - это классическое использование оператора goto. Два других способа использования goto (передача управления в case или default-ветвь) используются в операторе switch, о чем шла речь выше.

Применение данного оператора не рекомендуется концепцией структурного программирования, так как нарушает структурированность кода и затрудняет понимание последовательности выполнения операторов.

5.5.2. Операторы break и continue

В структурном программировании признаются полезными «переходы вперед», позволяющие при выполнении некоторого условия выйти из цикла, из оператора выбора, из блока. Для этой цели можно использовать оператор goto, но лучше применять специально предназначенные для этих целей операторы break (прекратить выполнение текущего блока программы и выйти из него на 1 уровень вложенности блоков программы вверх) и continue (продолжить).

Оператор break может стоять в теле цикла или завершать case-ветвь в операторе switch. Пример его использования в операторе switch уже демонстрировался. При выполнении оператора break в теле цикла завершается выполнение самого внутреннего цикла. В теле цикла, чаще всего, оператор break помещается в одну из ветвей оператора if, проверяющего условие преждевременного завершения цикла:

public void Jumps() {
          int i = 1, j = 1;
          for (i = 1; i < 100; i++) { // for i
            for (j = 1; j < 10; j++) { // for j
                        if (j >= 3) break;
            } // for j
            Console.WriteLine("Выход из цикла j при j = {0}", j);
            if (i >= 3) break;
          } // for i
          Console.WriteLine("Выход из цикла i при i= {0}", i);
} //Jumps

Оператор continue используется только в теле цикла. В отличие от оператора break, завершающего внутренний цикл, continue осуществляет переход к следующей итерации этого цикла.

5.5.3. Оператор return

Еще одним оператором, относящимся к группе операторов перехода, является оператор return, позволяющий завершить выполнение процедуры или функции. Его синтаксис:

return [выражение];

Для функций его присутствие и аргумент обязательны, поскольку выражение в операторе return задает значение, возвращаемое функцией.

 



<< ПредыдущаяОглавлениеСледующая >>