Предисловие
Статья входит в подборку: C# Starter Pack: Учимся с нуля
Удобная навигация по подборке: тык
Введение
Привет, дружище! Сегодня у нас новая тема из нашего крутого C# Starter Pack. Посмотри на прошлую статью, если пропустил: тыкай сюда.
А сегодня присаживайся поудобнее, завари чайку/кофейку или чего ты там завариваешь (не чифир ли?), ведь мы будем разбирать массивы, поехали!
Массив как шкатулка со всякими штучками
Объявляешь переменную коробку и вуаля, там уже твои мелочи уютно расположились.
Например, у тебя есть куча всяких монеток: рубль там, два рубля и так далее. Так вот чтобы они не валялись у тебя просто так - складываем их в копилку:
И вот теперь у тебя есть копилка, которая может вмещать в себя 5 элементов. То бишь длина массива уже равна 5, ни больше, ни меньше, но пока что мы в твою копилку ничего не положили, поэтому, по умолчанию, все 5 элементов будут значениями по умолчанию (в случае чисел - 0). Так устроен C#, друг!
Как заполнить эту копилку? - легко!
Ты можешь заранее решить, какие монетки туда положишь:
Или даже так:
Да-да, мы можем назначить массиву все необходимое через фигурные скобки! Иначе пришлось бы заморачиваться над этим делом таким вот образом:
Такие же фокусы можно провернуть и с другими штуками, например, со строками:
Индексы: Как найти нужную монетку
В массивах всё начинается не с один, два, три, вовсе нет! Все начинается именно с нуля. Чтобы достать монетку из копилки:
А если хочешь поменять монетку:
Но помни, если ты попытаешься достать шестую монетку из копилки, где их всего четыре, C# тебе вежливо скажет: "Так не пойдет, дружище!" и выкинет тебе ошибку.
Как узнать размер шкатулки?
Каждая коробка знает, сколько в ней местечка:
Вытаскиваем последнюю монетку
А чтобы вытащить монетки с конца, воспользуйся этим трюком:
Но можно сделать еще проще и без головняка:
Перебираем монетки
Теперь, если захочешь посмотреть, что у тебя в коробке, просто перебери её циклом foreach:
Или с помощью for, если хочешь чего поинтереснее:
Разница между foreach и for в том, что в foreach массив или коллекция каких-либо элементов не может меняться, когда в for тебе доступна любая шалость!
А бывают ли многомерные массивы?
Постой-ка! У нас есть не только одномерные массивы (1D), но и двухмерные (2D), и даже трехмерные (3D)! Для лучшего понимания покажу между ними разницу одной картинкой:
Переходим к 2D
Тут уже будут дела чуть посерьезнее, но давай вспомним игру "Морской бой" и сразу все станет понятно. Поиграемся с координатами!
Как найти кораблик (или элемент массива)?
А чтобы пройтись и обстрелять каждую клетку - делаем таким образом:
А что по поводу инициализации? Держи пример:
А 3D это как вообще?
Да вот так! Представим себе кубик Рубика - это и будет 3D.
Создаем их так:
Инициализация тут чуть мудренее, всего-то:
И вот ты уже исследуешь трехмерное пространство!
Зубчатые массивы
Или другими словами: массив массивов. Ну вы поняли..
Представим себе полки разной длины, типа так модно было, вы просто не понимаете:
Здесь две пары квадратных скобок говорят нам "Друг, мы массив из массивов, то есть тот массив, который хранит в себе другие массивы!". Длина такого массива указывается только в первых квадратных скобках. В случае с нашими полками длина будет равна 3, а вот на каждой полке мы уже сами решаем, что и сколько храним, поэтому размеры могут скакать в непонятном порядке, на то он и зубчатый!
Выглядеть это будет примерным образом:
И вот у тебя полки для всех твоих штучек.
А вот мы и добрались до практики!
Задачки на одномерные массивы:
- Создай массив из 5 элементов, представляющих количество конфет в разных пачках. Заполни его и найди общее количество конфет.
- Создай массив из 3 песен (просто названия). Попроси пользователя ввести их названия одно за другим, сохраняя в массив. Выведи на экран список введенных песен.
- Создай массив из 7 элементов, где каждый элемент – это количество пройденных шагов в разные дни недели. Заполни его и выведи общее количество шагов за неделю.
Задачки на двухмерные массивы:
- Создай двухмерный массив 3x3, представляющий оценки трех учеников по трем предметам. Заполни его случайными оценками от 2 до 5 и выведи на экран.
- Создай двухмерный массив 10x10 и заполни его таблицей умножения (произведения индексов строк и столбцов).
Задачки на трехмерные массивы:
- Создай трехмерный массив 3x3x3, представляющий кубик Рубика. Заполни его цветами (можно использовать числа для представления разных цветов).
Задачки на зубчатые массивы:
- Создай зубчатый массив, представляющий ряды в кинотеатре. Пусть будет 3 ряда с разным количеством мест (3, 4, 5). Заполни его числами, где "1" – место занято, "0" – место свободно.
- Создай зубчатый массив, где каждый подмассив – это список подарков, которые хочет получить каждый член семьи. Заполни массив и выведи списки подарков.
Итак, что у нас получилось?
Мы прошли путь от простых одномерных до сложных трехмерных массивов и даже разобрались с зубчатыми полками! Теперь ты знаешь, как устроены массивы в C# и как с ними работать.
Если у тебя будут вопросы - стучись, не стесняйся. Тут мы все друзья! А в следующей статье мы познакомимся с умными контейнерами для ваших данных.
Ставь ❤️ и подписывайся на канал, до новых встреч!
Предыдущая статья: тык
Поддержать автора: