Оператор безусловного перехода goto используется в одной из трех форм:
goto метка;
goto case константное_выражение;
goto default;
Оператор goto метка передает управление на помеченный оператор. Метка — это обычный идентификатор, областью видимости которого является функция, в теле которой он задан. Метка должна находиться в той же области видимости, что и оператор перехода. Использование этой формы оператора безусловного перехода оправдано в двух случаях:
□ принудительный выход вниз по тексту программы из нескольких вложенных
циклов или переключателей;
□ переход из нескольких точек функции вниз по тексту в одну точку (например,
если перед выходом из функции необходимо всегда выполнять какие-либо
действия).
В остальных случаях для записи любого алгоритма существуют более подходящие средства, а использование оператора goto приводит только к усложнению структуры программы и затруднению отладки. Применение этого оператора нарушает принципы структурного и модульного программирования, по которым все блоки, образующие программу, должны иметь только один вход и один выход. Вторая и третья формы оператора goto используются в теле оператора выбора switch. Оператор goto case константное_выражение передает управление на соответствующую константному выражению ветвь, а оператор goto default — на ветвь default. Надо отметить, что реализация оператора выбора в С# на редкость неудачна, и наличие в нем оператора безусловного
Оператор break
Оператор break используется внутри операторов цикла или выбора для перехода в точку программы, находящуюся непосредственно за оператором, внутри которого находится оператор break.
Оператор continue
Оператор перехода к следующей итерации текущего цикла continue пропускает все операторы, оставшиеся до конца тела цикла, и передает управление на начало следующей итерации. Перепишем основной цикл листинга 4.8 с применением оператора continue:
Оператор return
Оператор возврата из функции return завершает выполнение функции и передает управление в точку ее вызова. Синтаксис оператора:
return [ выражение ];
Тип выражения должен иметь неявное преобразование к типу функции. Если тип возвращаемого функцией значения описан как void, выражение должно отсутствовать.