Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Foreach (int n in array1)




Приклади

Двовимірний масив:

 

int[,] k = new int [2,3];

 

Тут пара квадратних дужок тільки одна. У нашому прикладі в масиві 6 (=2x3) елементів (k[0,0] - перший, k[1,2] - останній). Аналогічно можна задавати багатовимірні масиви. Тривимірний масив:

 

int[,, ]k = new int [10,10,10];

 

Варіант ініціалізації багатовимірного масиву:

 

int[ ] k = {{2,-2},{3,-22},{0,4}};

 

2.1.4. Масиви масивів

Ще одним видом масивів С# є масиви масивів, називані також порізаними масивами (jagged arrays). Такий масив масивів можна роз­глядати як одновимірний масив, елементи якого є масивами, елементи яких, у свою чергу, знову можуть бути масивами, і так може тривати до деякого рівня вкладеності.

Ці масиви можуть застосовуватися для подання дерев, у яких вузли можуть мати довільне число нащадків. Таким може бути, наприк­лад, генеалогічне дерево. Вершини першого рівня - Fathers, що пред­ставляють батьків, можуть задаватися одновимірним масивом, так що Fathers[i] - це i-й батько. Вершини другого рівня представляються ма­сивом масивів - Children, так що Children[i] - це масив дітей і-го батька, а Children[i][j] – це j-та дитина i-го батька. Для подання онуків знадо­биться третій рівень, так що Grandchildren [i][j][k] буде представляти k-го онука j-ї дитини і-го батька.

Є деякі особливості в оголошенні й ініціалізації таких масивів. Якщо при оголошенні типу багатовимірних масивів для вказівки роз­мірності використовувалися коми, то для порізаних масивів застосову­ється більш ясна символіка - сукупності пар квадратних дужок; на­приклад, int [ ][ ] задає масив, елементи якого - одновимірні масиви елементів типу int. Складніше зі створенням самих масивів й їх ініціа­лізацією. Тут не можна викликати конструктор new int[3][5], оскільки він не задає порізаний масив. Фактично потрібно викликати конструк­тор для кожного масиву на самому нижньому рівні. У цьому й полягає складність оголошення таких масивів.

Приклад

// масив масивів. Оголошення й ініціалізація

int[ ][ ] jagger = new int[3][ ]

{

new int[ ] = {5,7,9,11},

new int[ ] = {2,8},

new int[ ] = {6,12,4}

}

 

Масив jagger мас всього два рівні. Можна вважати, що в нього три елементи, кожний з яких є масивом. Для кожного такого масиву необхідно викликати конструктор new, щоб створити внутрішній ма­сив. У даному прикладі елементи внутрішніх масивів одержують зна­чення, будучи явно ініціалізовані константними масивами. Звичайно, припустиме й таке оголошення:

 

int[ ][ ] jaggerl = new int[3][ ]

{

new int[4],

new int[2],

new int[3]

}

 

У цьому випадку елементи масиву одержать при ініціалізації нульові значення. Реальну ініціалізацію потрібно буде виконувати програмним шляхом. У конструкторі верхнього рівня константу 3 можна опустити й писати просто new int[][]. Виклик цього конструктора можна взагалі опустити – він буде матися на увазі:

 

int[][] jagger2 =

{

new int[4],

new int[2],

new int[3]

}:

 

Конструктори нижнього рівня необхідні. Ще одне зауваження – динамічні масиви можливі й тут. У загальному випадку, фаті ці на будь-якому рівні можуть бути виразами, що залежать від змінних. Більше того, припустимо, щоб масиви на нижньому рівні були багатовимірними.

 

Приклад

// Оголошуємо двовимірний східчастий масив

int[][] k = newint [2][];

// Оголошуємо 0-й елемент східчастого масиву.

// Це знову масив і у ньому 3 елементи

k[0]=new int[3];

// Оголошуємо 1-й елемент східчастого масиву.

// Це знову масив і у ньому 4 елементи

k[1]=new int[4];

k[1] [3]=22; // записуємо 22 в останній елемент масиву

Зверніть увагу, що у східчастих масивів задається декілька пар квадратних дужок (стільки, скільки становить розмірність у масиву).

 

2.2. Цикл foreach

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

 

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

 

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

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

Приклад використання циклу foreach:

 

Class Program

{

static void Main(string[] args)

{

int[,] array1 = {0, 2, 4, 6, 8, 10);

foreach (int n in array1)

{






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных