Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Цикл foreach






Новим вигляд циклу є цикл foreach, зручний при роботі з масивами, колекціями й іншими подібними контейнерами даних. Його синтаксис:

foreach(тип ідентифікатор in контейнер) оператор

Цикл працює в повній відповідності зі своєю назвою - тіло циклу виконується для кожного елемента в контейнері. Тип ідентифікатора повинний бути погоджений з типом елементів, що зберігаються в контейнері даних. Передбачається також, що елементи контейнера (масиву, колекції) упорядковані. На кожному кроці циклу ідентифікатор, що задає поточний елемент контейнера, одержує значення чергового елемента відповідно до порядку, установленим на елементах контейнера. Із цим поточним елементом і виконується тіло циклу - виконується стільки разів, скільки елементів перебуває в контейнері. Цикл закінчується, коли повністю перебрані всі елементи контейнера.

Серйозним недоліком циклів foreach у мові C# є ті, що цикл працює тільки на читання, але не на запис елементів. Так що наповнювати контейнер елементами доводитися за допомогою інших операторів циклу.

 

int[] fibarray = new int[] { 0, 1, 2, 3, 5, 8, 13 };

foreach (int i in fibarray)

{

System.Console.WriteLine(i);

}

 

У наведеному нижче прикладі показана робота із тривимірним масивом. Масив створюється з використанням циклів типу for, а при знаходженні суми його елементів, мінімального й максимального значення використається цикл foreach:

/// < summary> /// Демонстрація циклу foreach. Обчислення суми/// максимального й мінімального елементів/// тривимірного масиву, заповненого випадковими числами./// < /summary> public void SumMinMax(){ int [,, ] arr3d = new int[10, 10, 10]; Random rnd = new Random(); for (int i =0; i< 10; i++) for (int j =0; j< 10; j++) for (int до =0; k< 10; k++) arr3d[i, j, k]= rnd.Next(100); long sum =0; int min=arr3d[0, 0, 0], max=arr3d[0, 0, 0]; foreach(int item in arr3d) { sum +=item; if (item > max) max = item; else if (item < min) min = item; } Console.WriteLine(" sum = {0}, min = {1}, max = {2}", sum, min, max); }//SumMinMax






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.