Доступ к элементам 2D-массива
Часть раздела Логика и управление потоком путешествия по C# на Coddy. Урок 3 из 66.
Доступ к элементам в двумерном массиве осуществляется с использованием синтаксиса, похожего на синтаксис обычных массивов, но требует двух индексов: одного для строки и одного для столбца.
Примечание: В C# существуют два вида многомерных массивов: прямоугольные массивы (int[,]) и зубчатые массивы (int[][]). В этом уроке рассматриваются зубчатые массивы, в которых каждая строка является отдельным массивом.
Создайте ступенчатый массив с 3 строками и 4 столбцами:
int[][] grid = new int[3][];
grid[0] = new int[4];
grid[1] = new int[4];
grid[2] = new int[4];Присвойте значение определённой позиции (индекс row 1, индекс column 2):
grid[1][2] = 42;Прочитайте значение из определённой позиции (row index 0, column index 3):
int value = grid[0][3];Поскольку индексы начинаются с 0, row index 0 — это 1-я строка, а column index 3 — 4-й столбец.
Помни, что индексы array начинаются с 0, поэтому допустимые диапазоны index таковы:
- Строки: index от 0 до 2 (для array из 3 строк: 1-я строка — index 0, 2-я — index 1, 3-я — index 2)
- Столбцы: index от 0 до 3 (для array из 4 столбцов: 1-й столбец — index 0, 2-й — index 1 и так далее)
grid[3][2]), вы получите исключение IndexOutOfRangeException.Задание
СреднеНапиши метод с именем getElement, который принимает три аргумента:
- Двумерный целочисленный массив (
int[][] matrix) - Индекс row (
int row) - Индекс col (
int col)
Метод должен вернуть element в указанной позиции, если индексы допустимы. Если хотя бы один индекс находится вне диапазона, метод должен вернуть -1.
Попробуйте сами
public class GetElement
{
public static int getElement(int[][] array, int row, int col)
{
// Напишите свой код здесь
}
}В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Логика и управление потоком
1Многомерные массивы
Основы 2D-массивовОбъявление и инициализация 2D-массивовДоступ к элементам 2D-массиваВложенные циклы с 2D-массивамиЗубчатые массивыОсновные операции с матрицамиПовторение — многомерные массивы4Методы управления потоком выполнения
Досрочный выходЗащитные условияОператоры перехода (goto)Break и ContinueУпрощение вложенных условных конструкций7Логические операторы: продвинутый уровень
Вычисление с коротким замыканиемУсловные логические операторыПриоритет операторовПовторение — продвинутые операторы2Продвинутое принятие решений
Множественные условияСложная логика BooleanСравнение If и SwitchВложенные конструкции SwitchПовторение — продвинутые решения5Обработка исключений
Основы Try-CatchТипы исключенийНесколько блоков CatchРабота с файламиБлок FinallyИспользование Using вместо Try-FinallyПользовательские исключенияПовторение — обработка ошибок3Улучшение циклов
Производительность цикловИтерация по сложным структурамКаждый тип циклаРефакторинг цикловПовторение — оптимизированные циклы6Обработка null
Основы ссылок на nullТипы значений, допускающие nullШаблоны проверки на nullЗащитное программированиеПовторение — безопасность при работе с nullПотренируйтесь самостоятельно: Онлайн-компилятор C#