Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ответы на вопросы_2003.doc
Скачиваний:
7
Добавлен:
16.04.2019
Размер:
275.46 Кб
Скачать

23. Оператор foreach.

Оператор foreach для циклического обращения к элментам коллекции, представляющую собой группу объектов. В C# определено несколько видов коллекций, каждая из которых является массивом. Общая форма оператора foreach:

foreach(тип имя_переменной_цикла inколлекция)

{оператор;}

Здесь тип имя_переменной_цикла обозначает тип и имя переменной управления циклом, которая получает значение следующего элемента коллекции на каждом шаге выполнения цикла foreach. А коллекция обозначает циклически запрашиваемую коллекцию, которая здесь и далее представляет собой массив. Следовательно, тип переменной цикла должен соответствовать типу элемента массива.

Оператор цикла foreach действует следующим образом. Когда цикл начинается, первый элемент массива выбирается и присваивается переменной цикла. На каждом последующем шаге итерации выбирается следующий элемент массива, который сохраняется в переменной цикла. Цикл завершается, когда все элементы массива окажутся выбранными. Следовательно, оператор foreachциклически опрашивает массив по отдельным его элементам от начала до конца.

Следует иметь в виду, что переменная цикла в операторе foreach служит только для чтения. Это означает, что, присваивая этой переменной новое значение, нельзя изменить содержимое массива.

Несмотря на то что цикл foreach повторяется до тех пор, пока не будут опрошены все элементы массива, его можно преждевременно завершить, воспользовавшись оператором break.

Оператор цикла foreachможно также использовать для циклического обращения к элементам многомерного массива. В этом случае элементы многомерного массива возвращаются по порядку следования строк от первой до последней.

Оператор foreach допускает циклическое обращение к массиву только в определенном порядке: от начала до конца. Это полезно при алгоритме поиска, так как там требуется именно такой механизм. Оператор цикла foreach отлично походит для такого применения, поскольку при поиске в массиве приходится анализировать каждый его элемент.

К другим примерам применения оператора цикла foreachотносится вычисление среднего, поиск минимального или максимального значения среди заданных значений, обнаружение дубликатов и т.д.

24.Оператор goto.

Имеющийся в C# оператор goto представляет собой оператор безусловного перехода. Когда в программе встречается оператор goto, её выполнение переходит непосредственно к тому месту, на которое указывает этот оператор.

Главный недостаток оператора gotoс точки зрения программирования заключается в том, что он вносит в программу беспорядок и делает её практически неудобочитаемой. Но иногда применение оператора goto может скорей прояснить чем запутать ход выполнения программы.

Для выполнения оператора gotoтребуется метка— действительный в C# идентификатор с двоеточием. Метка должна находится в том же методе, где и оператор goto, а также в пределах той же самой области действия. Пример:

x=1;

loopl: x++;

if (x<100) gotoloopl;

Кроме того, оператор goto может быть использован для безусловного перехода к ветви caseили defaultв операторе switch.Формально ветви caseи defaultвыполняют в операторе switchроль меток. Поэтому они могут служить адресатами оператораgoto. Тем не менее оператор goto должен выполняться в пределах оператора switch. Это означает, что его нельзя использовать как внешнее средство для безусловного перехода в оператор switch.