Хелпикс

Главная

Контакты

Случайная статья





Перебор массивов. Цикл foreach



Массивы

Массив представляет набор однотипных данных. Объявление массива похоже на объявление переменной за тем исключением, что после указания типа ставятся квадратные скобки:

тип_переменной[] название_массива;

Например, определим массив целых чисел:

int[] numbers;

После определения переменной массива мы можем присвоить ей определенное значение:

int[] nums = new int[4];

Здесь вначале мы объявили массив nums, который будет хранить данные типа int. Далее используя операцию new, мы выделили память для 4 элементов массива: new int[4]. Число 4 еще называется длиной массива. При таком определении все элементы получают значение по умолчанию, которое предусмотрено для их типа. Для типа int значение по умолчанию - 0.

Также мы сразу можем указать значения для этих элементов:

int[] nums2 = new int[4] { 1, 2, 3, 5 };   int[] nums3 = new int[] { 1, 2, 3, 5 };   int[] nums4 = new[] { 1, 2, 3, 5 };   int[] nums5 = { 1, 2, 3, 5 };

Все перечисленные выше способы будут равноценны.

Для обращения к элементам массива используются индексы. Индекс представляет номер элемента в массиве, при этом нумерация начинается с нуля, поэтому индекс первого элемента будет равен 0. А чтобы обратиться к четвертому элементу в массиве, нам надо использовать индекс 3, к примеру: nums[3]. Используем индексы для получения и установки значений элементов массива:

int[] nums = new int[4]; nums[0] = 1; nums[1] = 2; nums[2] = 3; nums[3] = 5; Console.WriteLine(nums[3]); // 5

И так как у нас массив определен только для 4 элементов, то мы не можем обратиться, например, к шестому элементу: nums[5] = 5;. Если мы так попытаемся сделать, то мы получим исключение IndexOutOfRangeException.

Перебор массивов. Цикл foreach

Цикл foreach предназначен для перебора элементов в контейнерах, в том числе в массивах. Формальное объявление цикла foreach:

foreach (тип_данных название_переменной in контейнер) { // действия }

Например:

int[] numbers = new int[] { 1, 2, 3, 4, 5 }; foreach (int i in numbers) { Console.WriteLine(i); }

Здесь в качестве контейнера выступает массив данных типа int. Поэтому мы объявляем переменную с типом int

Подобные действия мы можем сделать и с помощью цикл for:

int[] numbers = new int[] { 1, 2, 3, 4, 5 }; for (int i = 0; i < numbers.Length; i++) { Console.WriteLine(numbers[i]); }

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

int[] numbers = new int[] { 1, 2, 3, 4, 5 }; for (int i = 0; i < numbers.Length; i++) { numbers[i] = numbers[i] * 2; Console.WriteLine(numbers[i]); }


  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.